|
| matrise baseret på vektorer Fra : Jason Who |
Dato : 31-01-03 10:00 |
|
Hvis jeg har et koordsystem hvor jeg kender de tre akse-vektorer, hvordan
laver jeg så matrisen der roterer det "almindelige" system dertil?
Med det almindelige system mener jeg et hvor xvektoren er 1,0,0 t=0,1,0
z=0,0,1
Dette vil jeg eksempelvis gerne rotere til
x =1.41 , 1.41 , 0
y =-1.41 , 1.41, 0
z = 0,0,z
Dette er et eksempel. Hvordan konstruerer man den rotationsmatrise som vil
transformere system 1 til system2?
Min umidelbare ide er at det er ret basalt, men det må være mere simpelt end
bare at stille de tre vektorer op som de tre søjler i matrisen, ikke?
| |
Martin C. Petersen (31-01-2003)
| Kommentar Fra : Martin C. Petersen |
Dato : 31-01-03 10:08 |
|
"Jason Who" <jw@nomail.here> skrev i en meddelelse
news:b1ddr6$iog$1@news.net.uni-c.dk...
> Hvis jeg har et koordsystem hvor jeg kender de tre akse-vektorer, hvordan
> laver jeg så matrisen der roterer det "almindelige" system dertil?
>
> Med det almindelige system mener jeg et hvor xvektoren er 1,0,0 t=0,1,0
> z=0,0,1
> Dette vil jeg eksempelvis gerne rotere til
> x =1.41 , 1.41 , 0
> y =-1.41 , 1.41, 0
> z = 0,0,z
>
> Dette er et eksempel. Hvordan konstruerer man den rotationsmatrise som vil
> transformere system 1 til system2?
> Min umidelbare ide er at det er ret basalt, men det må være mere simpelt
end
> bare at stille de tre vektorer op som de tre søjler i matrisen, ikke?
Det giver da eller det rigtige resultat:
[x y z]*(1,0,0) = x
[x y z]*(0,1,0) = y
[x y z]*(0,0,1) = z
Er det ikke det du ønsker?
Martin
| |
Jason Who (31-01-2003)
| Kommentar Fra : Jason Who |
Dato : 31-01-03 11:23 |
|
> Det giver da eller det rigtige resultat:
> [x y z]*(1,0,0) = x
> [x y z]*(0,1,0) = y
> [x y z]*(0,0,1) = z
>
> Er det ikke det du ønsker?
>
Jo jeg ønsker det rigtige resultat. Det er dog før sket at jeg har stillet
en formel an som har virket fint på et lille testeksempel men som har fejlet
andre gange.. fordi der var mere i det end jeg lige så.
Jeg var desuden ikke klar over at det var så nemt at stille en matrise op
som transformerede fra et system til et andet. At man bare kunne skrive det
som de tre aksers vektorer, og evt gøre det til en 4*4 matrise ved at sætte
aksernes nulpunkter på også. Så er matriser da nemme nok
Går ud fra at du i din post siger at metoden ER så simpel?
| |
Martin C. Petersen (31-01-2003)
| Kommentar Fra : Martin C. Petersen |
Dato : 31-01-03 12:22 |
|
"Jason Who" <jw@nomail.here> skrev i en meddelelse
news:b1dink$iqc$1@news.net.uni-c.dk...
> Jo jeg ønsker det rigtige resultat. Det er dog før sket at jeg har stillet
> en formel an som har virket fint på et lille testeksempel men som har
fejlet
> andre gange.. fordi der var mere i det end jeg lige så.
> Jeg var desuden ikke klar over at det var så nemt at stille en matrise op
> som transformerede fra et system til et andet. At man bare kunne skrive
det
> som de tre aksers vektorer, og evt gøre det til en 4*4 matrise ved at
sætte
> aksernes nulpunkter på også. Så er matriser da nemme nok
>
> Går ud fra at du i din post siger at metoden ER så simpel?
En lineær transformation (her T(v)=Av hvor A er din [x y z] matrix) er
entydigt bestemt ved dens værdier på basisvektorerne (her e1,e2,e3), altså
er der kun den ene mulige matrice som giver
T(e1) = x, T(e2) = y, T(e3) = z
Din transformation ændrer dog på længden af vektorerne, så det er ikke kun
en rotation (vælg sqrt(2)/2 i stedet for sqrt(2) for at gøre den til det).
Se mere her:
http://mathworld.wolfram.com/RotationMatrix.html
Martin
| |
|
|