Herleitung der Drehung um eine Achse a im Raum durch Drehungen um Koordinatenachsen.
> | with(linalg): a:=vector(3,[]): |
Drehung um die
-Achse, so dass die Projektion von
auf die
-Ebene in die
-Achse gedreht wird.
> | c1:=a[2]/sqrt(a[2]^2+a[3]^2): s1:=a[3]/sqrt(a[2]^2+a[3]^2): M1:=matrix(3,3,[1,0,0,0,c1,s1,0,-s1,c1]); |
Dann liegt das Bild von
in der
-Ebene:
> | a2:=map(simplify,multiply(M1,a)); |
Nun drehen wir um die
-Achse, so dass das Bild von
nun wiederum auf die
-Achse abgebildet wird:
> | c2:=subs(a[1]^2=1-a[2]^2-a[3]^2,simplify(a2[1]/sqrt(a2[1]^2+a2[2]^2))); s2:=subs(a[1]^2=1-a[2]^2-a[3]^2,simplify(a2[2]/sqrt(a2[1]^2+a2[2]^2))); |
> | M2:=matrix(3,3,[c2,s2,0,-s2,c2,0,0,0,1]); |
Probe:
> | a3:=multiply(M2,a2); subs(a[1]^2=1-a[2]^2-a[3]^2,evalm(map(simplify,a3))); |
Jetzt die eigentliche Drehung um diese Achse um einen Winkel
M3:=matrix(3,3,[1,0,0,0,cos(phi),-sin(phi),0,sin(phi),cos(phi)]);
Die Gesamtdrehung
kann Maple nicht ohne Hilfe auf die gew�nschte Form bringen ...
> | MM:=map(simplify,subs(a[2]^2+a[3]^2=1-a[1]^2,multiply(transpose(M1),transpose(M2),M3,M2,M1))); |
> | # a[1]^2+(1-a[1]^2)*cos(phi)=cos(phi)+a[1]^2*(1-cos(phi)); |
> | for i from 2 to 3 do for j from 2 to 3 do MM[i,j]:=simplify(subs(a[1]^2=(1-a[2]^2-a[3]^2),MM[i,j])); od: od: print(MM); |
usw.