Erzeugung von geometrischen Objekten durch Transformationen
Schraubung, Drehung und Schiebung
> with(plots):with(linalg):
Matrizendarstellung der Schraubung um die z-Achse mit dem Schraubparameter p (Konstante) und dem Bewegungsparameter t. Die zu einer vollen Umdrehung gehörige Schubstrecke heißt Ganghöhe.
> A:=matrix(4,4,[1,0,0,0,0,cos(t),-sin(t),0,0,sin(t),cos(t),0,p*t,0,0,1]);
Warning, new definition for norm
Warning, new definition for trace
Die Bahnkurve eines Punkte ist eine Schraublinie. Definition der Schraublinien mit der z-Achse als Schraubachse und dem Parameter p
> Schraublinie:=evalm(A&*vector([1,x,y,z]));
Der bewegte Punkt wird eingesetzt (eine spezielle Schraublinie wird bestimmt):
> Schraublinie1:=subs(x=1,y=0,z=0,p=2,op(Schraublinie));
> Schraublinie2:=subs(x=3,y=0,z=0,p=2,op(Schraublinie));
Nun wird geplottet:
> s1:=spacecurve([Schraublinie1[2],Schraublinie1[3],Schraublinie1[4]], t=0..4*Pi,thickness=3,numpoints=200,color=red):
> s2:=spacecurve([Schraublinie2[2],Schraublinie2[3],Schraublinie2[4]], t=0..4*Pi,thickness=3,numpoints=200,axes=frame):
> display3d({s1,s2});
Für p=0 bekommt man eine reine Drehung um die z-Achse
> Drehmatrix:=subs(p=0,op(A));
> Bahn:=evalm(Drehmatrix&*vector([1,x,y,z]));
> Bahn1:=subs(x=2,y=5,z=7,op(Bahn));
> spacecurve([Bahn1[2],Bahn1[3],Bahn1[4]], t=0..4*Pi,thickness=3,numpoints=200,color=red,axes=FRAME);
Wenn der Drehanteil der Bewegung die Einheitsmatrix ist, dann ist die zugehörige Bewegung eine Schiebung :
> Schiebmatrix:=matrix(4,4,[1,0,0,0,r*t,1,0,0,q*t,0,1,0,p*t,0,0,1]);
> Bahnkurve:=evalm(Schiebmatrix&*vector([1,x,y,z]));
> Bahnkurve1:=subs(x=2,y=5,z=7,p=2,q=3,r=-1,op(Bahnkurve));
> spacecurve([Bahnkurve1[2],Bahnkurve1[3],Bahnkurve1[4]], t=-2..3,thickness=3,numpoints=200,color=red,axes=FRAME);
Im Schiebanteil der Bewegung können auch nichtlineare Funktionen des Bewegungsparamters t vorkommen.Man spricht dann von einer krummen Schiebung:
> KSchiebmatrix:=matrix(4,4,[1,0,0,0,t,1,0,0,3+t,0,1,0,1/2*t^2,0,0,1]);
> Bahnku:=evalm(KSchiebmatrix&*vector([1,x,y,z]));
> Bahnku1:=subs(x=2,y=5,z=7,op(Bahnku));
> Bahnku2:=subs(x=3,y=-5,z=1,op(Bahnku));
> p1:=spacecurve([Bahnku1[2],Bahnku1[3],Bahnku1[4]], t=-5..5,thickness=3,numpoints=200,color=red,axes=FRAME):
> p2:=spacecurve([Bahnku2[2],Bahnku2[3],Bahnku2[4]], t=-5..5,thickness=3,numpoints=200,color=black,axes=FRAME,orientation=[-30,70]):
> display3d({p1,p2});
>
Schraubflächen, Regelflächen, Drehflächen und Schiebflächen
Torsen