Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Matematică » Post Usenet




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 16 Oct 2008 11:11:13    Subiect: Post Usenet
raicuandi info:

raicuandi:

My head is spinning. I have a fairly simple task:

V1 = 0,1,0 (this is a vector pointing up along y-axis)
V2 = user defined unit vector pointing anywhere.

How do I rotate V1 using rotateX(), rotateY() and rotateZ() so that it
equals V2?

This would be intersting, too:

What is the resulting 4x4 transformation matrix that does the same thing?

Thanks,
Severi S.


Nu pricep ceva: daca V1 e unit-length, si V2 e tot unit-length, cum naiba pot fi v1 si v2 in aceasi directie fara sa fie tehnic egali? (sa aibe exact aceleasi valori)

Adica, nu e solutia la problema de mai sus
Cod sursă:

v1 = v2;
 

?

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 16 Oct 2008 11:22:02    Subiect: < fara subiect >
Dark info:

Dark:

Ba da, dar el vrea sa faca asta prin rotatii, dintr-un motiv sau altul. De exemplu poate vrea sa animeze trecerea de la v2 la v1. Evident, se poate face intr-o infinitate de moduri. Poti proiecta v2 pe planul XZ, calculezi unghiul cu axa X, rotesti atitea grade spre X (adica in jurul lui Y). Dupa aia calculezi unghiul dintre v2 si axa Y, rotesti atitea grade spre Y (adica in jurul lui Z). Sau calculezi ambele unghiuri la inceput, rotesti simultan. Sau te straduiesti un pic sa gasesti rotatia cea mai scurta.

Cu matricea e aceeasi problema, exista o infinitate de matrici care pot face asta. O matrice ar fi aia obtinuta combinind cele 2 rotatii de care am scris mai sus. Alta ar fi derivata din observatia ta de la inceput:

Cod sursă:

0 0 0 0
0 0 0 1
0 0 0 0
0 0 0 1
 


Sau:

Cod sursă:

0 0 0 0
0 a 0 0
0 0 0 0
0 0 0 1

a = 1 / v1.y
 


Edit: am citit prost, credeam ca v2 e (0, 1, 0) si ca vrea sa roteasca un vector oarecare sa coincida cu axa Y. De fapt vrea invers. Logica de mai sus ramine acceeasi, doar ca se inverseaza sensul operatiilor. E destul de clar ca vrea sa orienteze ceva pe o directie arbitrara (cum ar fi o camera sau un obiect) si atunci ii trebuie matricea ca sa transforme toate componentele ceva-ului (vertecsi, axe, ce-o fi). Cel mai simplu calculeaza un quaternion pentru asta, cam pe acelasi principiu povestit mai sus cu proiectia pe un plan, rotit, proiectia pe alt plan, etc. Evident, se poate si fara quaternioni, facind aceleasi operatii de proiectie si extragind unghiuri euleriene.

Edit 2: daca ar avea toate axele sistemului local de coordonate al obiectului (si probabil ca le are, doar ca ne spune doar despre v1, care e up vector-ul), matricea de transformare s-ar obtine punind axele drept coloane.

Ultima editare efectuată de Dark pe 16 Oct 2008 11:35:06; 3 editări în total

"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D.
Autobaza


Status:
Înregistrat pe:
12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 740
Locatie:
Programator

 
    Postat la 16 Oct 2008 13:27:04    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Multumesc! Smile

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 

Pagina 1 din 1 [ 1 ]


Server time: 06:59:15 24.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved