Misschien ook handig voor de topicstarter om een makkelijke manier te zien van het opstellen van een rotatie matrix.
We gaan nu uit van een rotatie om een vlak welke door de oorsprong gaat.
Hierbij stellen de letters het volgende voor:
(a,b,c) is het geroteerde beeld van de basisvector (1,0,0)
(d,e,f) is het geroteerde beeld van de basisvector (0,1,0)
(h,i,j) is het geroteerde beeld van de basisvector (0,0,1)
Laten we eens roteren door het vlak dat loopt door de z-as (left handed, loopt naar achteren zeg maar) en door de lijn x + y = 0. Als je het tekent zie je het wel voor je
(1,0,0) roteert naar (0,-1,0)
(0,1,0) roteert naar (-1,0,0)
(0,0,1) roteert naar (0,0,1) (het vlak loopt over de z-as)
Hierbij heb je simpel je rotatiematrix opgesteld:
Mocht je vlak nou niet door de oorsprong lopen dan is er nog geen probleem, je zult dan alleen met homogene coördinaten moeten werken.
De homogene representatie van een vector a is bijvoorbeeld (x, y, z, 1), waarbij dus alleen die 1 toegevoegd is.
Terug naar de rotatie. Als je vlak niet door de oorsprong gaat, wat dan?
Kan op verschillende manieren:
• Transleer het vlak eerst zo, dat hij evenwijdig loopt met een as en door de oorsprong gaat
• Stel de rotatiematrix op voor een vlak dat door de oorsprong gaat
• Stel een translatie herstel matrix op
• Vermenigvuldig de 3 matrices met de vector
Andere manier
• Doe alsof het vlak door de oorsprong ligt en bereken de beelden van de basisvectoren als voorgaand
• Bereken het beeld van de oorsprong bij rotatie door het orginele vlak
De rotatiematrix wordt dan wel 4x4
code:
1
2
3
4
| a d h k
b e i l
c f j m
0 0 0 1 |
(k,l,m) zijn hier het beeld van (0,0,0) na rotatie door het orginele vlak.
Laten we eens roteren door het vlak dat
evenwijdig loopt door de z-as (left handed, loopt naar achteren zeg maar) en door de lijn x + y = 2. Als je dit tekent zie je een lijn tussen (0,2,0) en (2,0,0)
Als wel (0,0,0) spiegelen in die lijn dan krijgen we het beeld van de oorsprong na de rotatie. Het is redelijk simpel in te zien dat dit beeld (2,2,0) is
Dus onze nieuwe rotatie matrix wordt dan
code:
1
2
3
4
| 0 -1 0 2
-1 0 0 2
0 0 1 0
0 0 0 1 |
Hierbij zijn dus alleen de vierde kolom toegevoegd (beeld van (0,0,0)) en de vierde rij (homogene matrix)