Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Darstellende Geometrie IMU LeobenSommersemester 2011
Lehrveranstaltungsbetreuer: Anton Gfrerrer, Sigrid Prabitz-Hallama, Josef Radlingmayer
Darstellung von Kurven und Flächen mit MAPLE
Rechnen mit Vektoren
Einige Plot-Befehle
Ein paar nützliche selbstgeschriebene Prozeduren
Werden gewisse Rechenschritte öfter benötigt, empfiehlt es sich diese zu einer "procedure" zusammenzufassen. Eine solche MAPLE-Prozedur hat die folgende Architektur:
procname := proc(par1, par2, ... ) description "Beschreibung der Prozedur"; local locvar1, locvar2, ... ; Body
return (MAPLE-expression);
end proc;
Die Prozedur besitzt den Namen procname, die Größen par1, par2, ... sind Übergabeparameter. Über den Befehl description (optional) kann eine kurze Beschreibung der Prozedur für den Anwender angegeben werden.
die Variablen locvar1, locvar2, ... sind lokal, also nur innerhalb der Prozedur bekannt. Der Hauptteil einer Prozedur ist der Body, der eine beliebige Folge von MAPLE-Anweisungen beinhalten kann. Die Anweisung return (MAPLE-expression) legt den Rückgabewert der Prozedur fest. Enthält eine Prozedur keinen Return-Anweisung, dann wird der zuletzt im Body der Prozedur berechnete Wert zurückgegeben.
Beispiel: Parameterdarstellung einer allgemeinen Zylinderfläche
Die Prozedur:Cylinder := proc(x, e, v)
description "Liefert die Parameterdarstellung einer
Zylinderflaeche, wobei die Leitkurve x = x(u), der
Richtungsvektor e der Erzeugenden und der zweite
Parameter v eingegeben werden.";
local y;
y := x + v*e:
return y;
end proc;
Wir testen die Prozedur "Cylinder":# Kreiszylinder
r := 5.0;
x := ;
e := ;
y := Cylinder(x, e, v);
plot3d(y, u=0..2*Pi,v=0..10, scaling=constrained);
# Drehzylinder
r := 5.0;
x := ;
e := ;
y := Cylinder(x, e, v);
plot3d(y, u=0..2*Pi,v=0..10, scaling=constrained);
Aufgabe 4Schreiben Sie eine Prozedur, die zur Erzeugung der Parameterdarstellung einer Kegelfläche verwendet werden kann.
INPUT: Der Scheitel S (Ortsvektor s), die Leitkurve x = x(u), der zweite Parameter v zur Festlegung der Position auf der Erzeugenden
OUTPUT: Der Punkt am Drehkegel Ortsvektor y(u,v)
Testen Sie Ihre Prozedur!
Die Prozedur:Cone := proc(x, s, v)
description "Liefert die Parameterdarstellung einer
Kegelflaeche, wobei die Leitkurve x(u), der Scheitel s
und der zweite Parameter v eingegeben werden.";
local y;
y := s + v*(x-s):
return y;
end proc;
Test der Prozedur:# Kreiskegel
r := 5.0;
x := ;
s := ;
y := Cone(x, s, v);
plot3d(y, u=0..2*Pi, v=0..10, scaling=constrained);
# Drehkegel
r := 5.0;
x := ;
s := ;
y := Cone(x, s, v);
plot3d(y, u=0..2*Pi, v=-5..10, scaling=constrained);
# Parabolischer Kegel
p:= 2;
x := ;
s := ;
y := Cone(x, s, v);
plot3d(y, u=-5..5, v=0..10, scaling=constrained);
Aufgabe 5
Schreiben Sie eine Prozedur, die den Fußpunkt F des Lotes aus einem Punkt P auf eine Geradeg des 3-Raumes berechnet.
INPUT: Der Punkt P (Ortsvektor p) und die Gerade g (Ortsvektor a eines ihrer Punkte, Richtungsvektor d).
OUTPUT: Der Punkt F (Ortsvektor f)
HINWEIS: Verwenden Sie für die Vektoralgebra Prozeduren des MAPLE-packages"LinearAlgebra" (siehe oben), ohne das package jedoch explizit zu laden.
Testen Sie Ihre Prozedur!
Die Prozedur:restart;
Fusspunkt := proc(p, a, d)
description "Berechnet den Fußpunkt f des Lotes aus dem
Punkt p auf die Gerade mit dem Aufpunkt a und dem
Richtungsvektor d.";
local d0, f;
d0 := LinearAlgebra[Normalize](d, Euclidean):
f := a + LinearAlgebra[DotProduct](p-a, d0, conjugate=
false)*d0:
return f;
end proc:
Test der Prozedur:a := ;
d := ;
p := ;
f := Fusspunkt(p, a, d);
Aufgabe 6
Drehflächen