{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "Befehlstext" -1 256 "Courier" 1 12 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 262 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 271 "" 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 275 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 281 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 286 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 288 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "Courier " 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "befehl" -1 291 "Courier" 1 12 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 292 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 295 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 296 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 297 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 298 "Courier" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 299 "Courier " 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 300 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 301 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 302 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 303 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 304 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 305 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 306 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 307 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 308 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 309 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 310 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 311 "" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 312 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 313 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 314 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 315 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 316 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 317 "Courier" 0 1 255 0 0 1 0 1 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "H eading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 " " 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 } {PSTYLE "Author" 0 19 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 8 8 0 0 0 0 0 0 -1 0 }{PSTYLE "Korrektur" 0 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 255 0 255 1 2 1 2 0 0 2 1 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 256 1 }{PSTYLE "" 0 257 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 259 1 {CSTYLE "" -1 -1 " " 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 0 260 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 261 1 {CSTYLE "" -1 -1 " " 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 9 "Plottools" }}{PARA 19 "" 0 "" {TEXT -1 25 "Gerhard Bitsch , 18.11.99" }}{PARA 0 "" 0 "" {TEXT -1 252 "Das Paket plottools stellt eine Reihe von Befehlen zur Verf \374gung, mit denen man Plot-Strukturen bearbeiten kann. Au\337erdem l iefert es einige Befehle, die selbst komplexe Plot-Strukturen erzeugen . Einige dieser Befehle sollen hier n\344her erl\344utert werden." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "with(plottools);with(plots): " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 19 "Plotstrukturen (2D)" }}{PARA 0 "" 0 "" {TEXT -1 295 "Zun \344chst einige Plotstrukturen, die wir gut f\374r graphische Darstell ungen verwenden k\366nnen. Die Befehle liefern kein Bild, sondern nur \+ eine Plotstruktur, die in ein Bild eingebaut werden kann (wie \374blic h mit display). Man tut daher gut daran, die Ergebnisse solcher Befehl e an Variable zu binden." }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 5 "point " }}{PARA 0 "" 0 "" {TEXT -1 81 "Zeichnet einen Punkt. Als Eingabe we rden die Koordinaten eines Punktes erwartet:" }}{PARA 0 "" 0 "" {TEXT 272 14 "point([ax,ay])" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 271 100 "Als weitere Eingaben k\366nnen die \374blichen Plotoptionen (z. B . f\374r Farbe und Symbol) angegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "rx:=rand( 0..1000):ry:=rand(0..1000):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 130 "display(map(x->point(x,symbol=BOX,color=COLOR(RGB,rand()/10^12,ra nd()/10^12,rand()/10^12)),[seq([rx()/100,ry()/100],i=1..1000)]));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 4 "line" }}{PARA 0 "" 0 "" {TEXT -1 106 "Zeichnet eine Stre cke zwischen zwei Punkten. Als Eingabe werden die Koordinaten von zwei Punkten erwartet:" }}{PARA 0 "" 0 "" {TEXT 264 21 "line([ax,ay],[bx,b y])" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 262 108 "Als weitere Einga ben k\366nnen die \374blichen Plotoptionen (z. B. f\374r Farbe, Dicke, Strichform) angegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel :" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "l1:=line([0,0],[3,2],co lor=red,thickness=1,linestyle=1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "l2:=line([-1,3],[4,-1],color=blue,thickness=2,linesty le=2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "l3:=line([-1,1],[ 3,1],color=navy,thickness=3,linestyle=3):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 64 "l4:=line([1,3],[2,-1],color=aquamarine,thickness=4, linestyle=4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "display(\{ l1,l2,l3,l4\},scaling=constrained);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 5 "curve" }}{PARA 0 "" 0 "" {TEXT -1 131 "Zeichnet einen Stre ckenzug zwischen den Punkten einer Punktliste. Als Eingabe wird die Li ste der Koordinaten aller Punkte erwartet:" }}{PARA 0 "" 0 "" {TEXT 265 27 "curve([[x1,y1],...[xn,yn]])" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 263 108 "Als weitere Eingaben k\366nnen die \374blichen Plotopti onen (z. B. f\374r Farbe, Dicke, Strichform) angegeben werden." }} {PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "hn:=curve([[0,0],[0,1],[1,2],[2,1],[0,1],[2,0],[2,1] ,[0,0],[2,0]],color=turquoise,thickness=6,linestyle=4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "display(\{hn\},scaling=constrained, axes=none);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "rectangle" }} {PARA 0 "" 0 "" {TEXT -1 153 "Zeichnet ein ausgef\374lltes Rechteck. A ls Eingabe werden die Koordinaten [olx,oly] der linken oberen Ecke un d [urx,ury] der rechten unteren Ecke erwartet:" }}{PARA 0 "" 0 "" {TEXT 269 32 "rectangle([[olx,oly],[urx,ury]])" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 268 108 "Als weitere Eingaben k\366nnen die \374b lichen Plotoptionen (z. B. f\374r Farbe, Dicke, Strichform) angegeben \+ werden." }}{PARA 0 "" 0 "" {TEXT -1 91 "Zeichnet man mehrere Rechtecke , \374berdecken die zuerst gezeichneten die sp\344ter gezeichneten." } }{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "display([rectangle([1,1],[3,-1],color=blue),rectangl e([1,3],[4,0],color=green),rectangle([-1,2],[2,-2],color=red)],scaling =constrained);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 7 "polygon" }} {PARA 0 "" 0 "" {TEXT -1 198 "Zeichnet einen ausgef\374lltes konvexes \+ (d.h. ohne nach innen einspringende Kanten) Vieleck mit den Punkten ei ner Punktliste als Ecken. Als Eingabe wird die Liste der Koordinaten a ller Punkte erwartet:" }}{PARA 0 "" 0 "" {TEXT 267 29 "polygon([[x1,y1 ],...[xn,yn]])" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 266 108 "Als we itere Eingaben k\366nnen die \374blichen Plotoptionen (z. B. f\374r Fa rbe, Dicke, Strichform) angegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 131 "display(pol ygon([[1,0],[2/3,2/3],[0,1],[-2/3,2/3],[-1,0],[-2/3,-2/3],[0,-1],[2/3, -2/3]],color=gold),axes=none,scaling=constrained);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 5 "ar row" }}{PARA 0 "" 0 "" {TEXT -1 400 "Dieser Befehl erzeugt einen Pfeil . Er ben\366tigt als Eingabe die Koordinaten des Punktes (als Liste de r Form [x,y]), an dem der Pfeil beginnen soll, eine Liste [u,v] mit de n Koordinaten der Pfeilspitze, einen Zahlenwert, der angibt, wie breit der Pfeil ist, einen Zahlenwert, der angibt, wie breit die Pfeilpitze ist und einen Zahlenwert, der angibt, wieviel Prozent des Pfeiles die Spitze einnimmt: " }{TEXT 257 61 "arrow([x,y],[u,v],schaftbreite,sp itzenbreite,spitzenprozent) " }}{PARA 0 "" 0 "" {TEXT 258 89 "Als weit ere Eingaben k\366nnen die \374blichen Plotoptionen (z. B. f\374r Farb e) angegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "a1:=arrow([1,1],[3,-2],0.1,0 .3,0.1,color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "a2:= arrow([-2,-3],[2,5],0.3,0.6,0.8,color=red):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "display(\{a1,a2\},scaling=constrained);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 6 "circle" }} {PARA 0 "" 0 "" {TEXT -1 144 "Dieser Befehl erzeugt die Plotstruktur f \374r einen Kreis. Er erwartet als Eingabe die Koordinaten des Kreismi ttelpunktes [mx,my] und den Radius r." }}{PARA 0 "" 0 "" {TEXT 259 17 "circle([mx,my],r)" }}{PARA 0 "" 0 "" {TEXT -1 65 "Weitere Optionen zu m plotten k\366nnen zus\344tzlich eingegeben werden." }}{PARA 0 "" 0 " " {TEXT -1 9 "Beispiel:" }}{PARA 0 "" 0 "" {TEXT -1 22 "Wir zeichnen e ine Uhr:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "Ziffernblatt:=ci rcle([3,3],3,color=green,thickness=5):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "Stundenzeiger:=arrow([3,3],[3+0.7*3*cos(Pi/3),3+0.7*3 *sin(Pi/3)],0.5,0.8,0.4,color=red):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "Minutenzeiger:=arrow([3,3],[3+1.2*3*cos(2*Pi/3),3+1.2 *3*sin(2*Pi/3)],0.3,0.5,0.2,color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "Untertitel:=textplot([3,-1.8,\"Schule ist aus!\"],col or=blue,font=[HELVETICA,BOLD,22]):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "display([Minutenz eiger,Stundenzeiger,Ziffernblatt,Untertitel],scaling=constrained,axes= none);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 58 "Sch\366n w\344re jetzt \+ noch eine Beschriftung mit den Uhrzeiten." }}{PARA 0 "" 0 "" {TEXT -1 80 "Zun\344chst brauchen wir die Winkel f\374r die Stunden (beginnend \+ bei 1 Uhr, d.h. bei " }{XPPEDIT 18 0 "Pi/3;" "6#*&%#PiG\"\"\"\"\"$!\" \"" }{TEXT -1 3 " ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "win kel:=[seq(Pi/3-i*Pi/6,i=0..11)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 152 "Da die Mitte des Ziffernblattes bei [3,3] ist und der Radius 3 be tr\344gt, verlegen wir die Positionen der Ziffern auf einen Kreis um [ 3,3] mit Radius 3.5:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "Pos itionen:=map(x->[3+3.5*cos(x),3+3.5*sin(x)],winkel);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 203 "Wir wollen r\366mische Ziffern verwenden (schl ie\337lich lernt ein Teil der Klasse Latein!). Dazu stellen wir ganz e infach eine Liste der Ziffern auf und f\374hren diese Liste mit zip mi t den Positionen zusammen:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 106 "Ziffern:=zip((x,y)->[op(x),y],Positionen,[\"I\",\"II\",\"III\",\" IV\",\"V\",\"VI\",\"VII\",\"VIII\",\"IX\",\"X\",\"XI\",\"XII\"]);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 195 "In der Variablen Ziffern haben wi r jetzt die Grunddaten f\374r eine Folge von Textplots, die wir mit ma p erzeugen k\366nnen (hier ein Doppelpunkt am Ende der Anweisung, um d ie Ausgabe zu unterdr\374cken):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "zifplot:=map(x->textplot(x,color=gold,font=[HELVETICA,BOLD,16] ),Ziffern):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 128 "Die Liste zifplot wird jetzt in den display-Befehl eingebunden (wir ben\366tigen op, um aus der Liste wieder eine Folge zu machen):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 105 "display(\{Ziffernblatt,Stundenzeiger,Minutenzei ger,Untertitel,op(zifplot)\},scaling=constrained,axes=none);" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT -1 4 "disk" }}{PARA 0 "" 0 "" {TEXT -1 154 "Dieser Befehl erzeugt die Plotstruktur f\374r einen gef\374llten \+ Kreis. Er erwartet als Eingabe die Koordinaten des Kreismittelpunktes \+ [mx,my] und den Radius r." }}{PARA 0 "" 0 "" {TEXT 270 15 "disk([mx,my ],r)" }}{PARA 0 "" 0 "" {TEXT -1 65 "Weitere Optionen zum plotten k \366nnen zus\344tzlich eingegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "display([di sk([1,1],1/2*sqrt(2),color=red),disk([-1,1],1/2*sqrt(2),color=green),d isk([0,0],1/2*sqrt(2),color=blue)],scaling=constrained);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 3 "arc" }}{PARA 0 "" 0 "" {TEXT -1 224 "Der B efehl erzeugt die Plotstruktur f\374r einen Kreisbogen. Als Eingaben w erden der Kreismittelpunkt [mx,my], der Radius und der Bereich der Win kel zum Beginn des Bogens sowie zum Ende des Bogens (beide im Bogenma \337) ben\366tigt:" }}{PARA 0 "" 0 "" {TEXT 260 40 "arc([mx,my], r, st artwinkel..endewinkel)" }}{PARA 0 "" 0 "" {TEXT -1 56 "Zus\344tzlich k \366nnen die \374blichen Optionen eingeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 126 "bg :=seq(arc([3,3],0.3+i*0.1,i*Pi/6..2*i*Pi/6,color=COLOR(RGB, rand()/10^ 12, rand()/10^12, rand()/10^12),thickness=4),i=0..12):" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 61 "display(\{bg\},scaling=constrained,view=[0..5, 0..5],axes=none);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 8 "pieslice" } }{PARA 0 "" 0 "" {TEXT -1 223 "Der Befehl erzeugt die Plotstruktur f \374r ein \"Tortenst\374ck\". Als Eingaben werden der Kreismittelpunkt [mx,my], der Radius und der Winkel zum Beginn des Bogens sowie der Wi nkel zum Ende des Bogens (beide im Bogenma\337) ben\366tigt:" }}{PARA 0 "" 0 "" {TEXT 261 45 "pieslice([mx,my], r, startwinkel, endewinkel) " }}{PARA 0 "" 0 "" {TEXT -1 56 "Zus\344tzlich k\366nnen die \374blich en Optionen eingeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel: " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "tstuecke1:=seq(pieslice( [3,3],3.5,2*i/3*Pi..(2*i+1)/3*Pi,color=black),i=0..2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "tstuecke2:=seq(pieslice([3,3],3,(2* i+1)/3*Pi..2*(i+1)/3*Pi,color=yellow),i=0..2):" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 61 "display(\{tstuecke1,tstuecke2\},scaling=constr ained,axes=none);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 7 "ellipse" }} {PARA 0 "" 0 "" {TEXT -1 177 "Dieser Befehl erzeugt die Plotstruktur f \374r eine Ellipse. Er erwartet als Eingabe die Koordinaten des Ellips enmittelpunktes [mx,my] und die L\344angen a und b der beiden Halbachs en." }}{PARA 0 "" 0 "" {TEXT 273 20 "ellipse([mx,my],a,b)" }}{PARA 0 " " 0 "" {TEXT -1 112 "Weitere Optionen zum plotten k\366nnen zus\344tzl ich (filled=true erzeugt eine ausgef\374llte Ellipse) eingegeben werde n." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 114 "display([ellipse([3,3],2,3,color=blue,thickness=5) ,ellipse([3,3],3,2,filled=true,color=red)],scaling=constrained);" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT -1 11 "ellipticArc" }}{PARA 0 "" 0 "" {TEXT -1 245 "Dieser Befehl erzeugt die Plotstruktur f\374r einen Elli psenbogen. Er erwartet als Eingabe die Koordinaten des Ellipsenmittelp unktes [mx,my] und die L\344ngen a und b der beiden Halbachsen sowie e ine Bereichsangabe w1..w2 f\374r den Winkel (in Bogenma\337):" }} {PARA 0 "" 0 "" {TEXT 274 32 "ellipticArc([mx,my],a,b, w1..w2)" }} {PARA 0 "" 0 "" {TEXT -1 120 "Weitere Optionen zum plotten k\366nnen z us\344tzlich (filled=true erzeugt einen ausgef\374llten Ellipsenbogen) eingegeben werden." }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 97 "tstuecke1:=seq(ellipticArc([ 3,3],3.5,2.5,2*i/3*Pi..(2*i+1)/3*Pi,filled=true,color=black),i=0..2): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "tstuecke2:=seq(elliptic Arc([3,3],3,2,(2*i+1)/3*Pi..2*(i+1)/3*Pi,filled=true,color=yellow),i=0 ..2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "display(\{tstuecke1,tstuecke2\},scaling=constraine d,axes=none);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 21 "Transformatio nen (2D)" }}{PARA 0 "" 0 "" {TEXT -1 448 "Es gibt eine Reihe von Befeh len, mit denen man Plot-Strukturen bearbeiten kann. Die wichtigsten so llen hier vorgestellt werden. Eingaben sind immer Plotstrukturen und A ngaben zu den gew\374nschten Transformationen. Optionen k\366nnen mit \+ diesen Befehlen nicht ver\344ndert werden. Wenn die Koordinaten von Pu nkten eingegeben werden, m\374ssen sie Zahlen sein, symbolische Angabe n wie Pi, sqrt(2), etc. sind nicht zul\344ssig (man kann im Zweifel ev alf verwenden)." }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "translate" }} {PARA 0 "" 0 "" {TEXT -1 204 "Mit diesem Befehl kann man eine Plot-Str uktur als Ganzes verschieben. Als Eingabe wird die Plot-Struktur p und die Verschiebung delta_x in x-Richtung sowie die Verschiebung delta_y in y-Richtung ben\366tigt." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 277 30 "translate(p, delta_x, delta_y)" }}{PARA 0 "" 0 "" {TEXT -1 9 " Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "p:=circle([0,0] ,2,color=maroon,thickness=8):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "display([p,translate(p,3,0),translate(p,-3,0),translate(p,1.5,2 .5),translate(p,-1.5,2.5)],scaling=constrained);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 5 "scal e" }}{PARA 0 "" 0 "" {TEXT -1 199 "Mit diesem Befehl kann man eine Plo tstruktur p bez\374glich eines Punktes [x,y] als Zentrum in Richtung d er x-Achse um einen Faktor a und gleichzeitig in Richtung der y-Achse \+ um einen Faktor b strecken." }}{PARA 0 "" 0 "" {TEXT 275 18 "scale(p,a ,b,[x,y])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 41 "p:=plot(sin(x),x=-2*Pi..2*Pi,color=blue):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "display([p,scale(p,2,3,[0, 0])],scaling=constrained);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "ho mothety" }}{PARA 0 "" 0 "" {TEXT -1 174 "Mit diesem Befehl wird eine P lotstruktur p bez\374glich eines Zentrums [x,y] mit dem Streckfaktor a zentrisch gestreckt (das entspricht scale mit zwei gleichen Streckfa ktoren)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 276 20 "homothety(p,a ,[x,y])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 30 "p:=plot(cos(x),x=-2*Pi..2*Pi):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "display([p,homothety(p,sqrt(2),[eva lf(Pi/2),0]),homothety(p,-2,[0,0])],scaling=constrained);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 7 "reflect" }}{PARA 0 "" 0 "" {TEXT -1 366 "Mit diesem Befehl kann man eine Plotstruktur an einer Geraden oder an einem Punkt spiegeln. Man erh\344lt die gespiegelte Struktur als Erge bnis. Als Eingabe erwartet der Befehl eine Plotstruktur und entweder e inen Punkt (Punktspiegelung) oder eine Liste von zwei Punkten (Spiegel ung an der durch diese Punkte definierte Gerade). Optionen k\366nnen n icht ver\344ndert werden. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 278 16 "reflect(p,[x,y])" }{TEXT 281 2 " " }{TEXT 280 33 " --> Spi egelung am Punkt [x,y]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 279 28 "reflect(p,[[x1,y1],[x2,y2]])" }{TEXT 283 8 " ---> " }{TEXT 282 51 " Spiegelung an der Geraden durch [x1,y1] und [x2,y2]" }}{PARA 0 "" 0 " " {TEXT -1 9 "Beispiel:" }}{PARA 0 "" 0 "" {TEXT -1 50 "Wir erzeugen z un\344chst ein Schaubild einer Parabel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "p := plot(x^2,x=-5..5,-10..10,color=blue):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "Wir spiegeln zun\344chst an der 1. Winkelhalbierenden:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "wh1 :=line([-10,-10],[10,10],color=red,linestyle=4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "q := reflect(p,[[0,0],[1,1]]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "display([p,q,wh1],view=[-10..10,-10 ..10],scaling=constrained);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 114 "N un spiegeln wir das ganze Bild mit einer Punktspiegelung am Ursprung ( die Gerade wir auf sich selbst abgebildet!)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "q1:=reflect(displ ay([p,q,wh1]),[0,0]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "di splay([p,q,q1],view=[-10..10,-10..10],scaling=constrained);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 6 "rotate" }}{PARA 0 "" 0 "" {TEXT -1 99 "Mit diesem Befehl kann eine Plotstruktur p um einen Punkt [x,y] um den Winkel alpha ged reht werden." }}{PARA 0 "" 0 "" {TEXT 284 23 "rotate(p, alpha, [x,y]) " }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "p:=plot(x^2,x=-5..5,thickness=2,color=navy):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "display([p,rotate(p,45,[0,0] ),rotate(p,-45,[0,0])],scaling=constrained,view=[-10..10,-5..15]);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "display([seq(rotate(p,45*i, [0.5,0.25]),i=0..5)],scaling=constrained,view=[-10..10,-10..10]);" }}} }{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "transform" }}{PARA 0 "" 0 "" {TEXT -1 250 "Mit diesem Befehl k\366nnen eigene Transformationsfunkti onen erstellt werden. Als Eingabe wird eine Funktion mit 2 Variablen ( x,y) erwartet, die als Ergebnis eine Liste mit 2 Zahlenwerten ausgibt, die aus den Eingabewerten f\374r x und y berechnet werden. " }}{PARA 0 "" 0 "" {TEXT 285 33 "transform((x,y)->[f(x,y),g(x,y)])" }}{PARA 0 " " 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 95 "Wi r bilden die y-Werte auf ihren nat\374rlichen Logarithmus ab und lasse n die x-Werte unver\344ndert:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "logy:=transform((x,y)->[x,ln(y)]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "p:=plot([x^2+1,exp(1/2*x),2^x],x=-8..8,color=[red,blu e,magenta]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "display([p, logy(p)],scaling=constrained,view=[-8..8,-8..8]);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 19 "P lotstrukturen (3D)" }}{PARA 0 "" 0 "" {TEXT -1 103 "Es gibt auch eine \+ Reihe 3-dimensionaler Plotstrukturen, die mit plottools leicht erzeugt werden k\366nnen." }}{PARA 0 "" 0 "" {TEXT -1 67 "Wir legen einige di splay-Optionen fest, um Schreibarbeit zu sparen:" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 70 "setoptions3d(scaling=constrained,view=[-6..6,- 6..6,-6..6],axes=boxed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 40 "Strukturen die in 2D und 3D \+ m\366glich sind" }}{PARA 0 "" 0 "" {TEXT -1 116 "Einige der schon besp rochenen 2D-Strukturen k\366nnen durch Eingabe entsprechender 3D-Daten auch f\374r 3D erzeugt werden:" }}{PARA 257 "" 0 "" {TEXT -1 5 "point " }}{PARA 258 "" 0 "" {TEXT -1 4 "line" }}{PARA 259 "" 0 "" {TEXT -1 5 "curve" }}{PARA 260 "" 0 "" {TEXT -1 7 "polygon" }}{PARA 261 "" 0 " " {TEXT -1 5 "arrow" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 4 "cone" }} {PARA 0 "" 0 "" {TEXT -1 228 "Mit diesem Befehl wird ein (senkrechter) Kegel erzeugt. Eingaben sind die Koordinaten der Spitze des Kegels [ sx,sy,sz], der Radius r des Grundkreises und die H\366he h des Kegels. (Bei positivem h ist der Kegel nach oben ge\366ffnet)" }}{PARA 0 "" 0 "" {TEXT 286 20 "cone([mx,my,mz],r,h)" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "display(cone([1,1,4],3,-4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 6 "cuboid" }} {PARA 0 "" 0 "" {TEXT -1 155 "Dieser Befehl erzeugt einen Quader. Er e rwartet als Eingabe die Koordinaten [ax,ay,az] und [bx,by,bz] von zwei Endpunkten einer Raumdiagonalen des Quaders:" }}{PARA 0 "" 0 "" {TEXT 287 29 "cuboid([ax,ay,az],[bx,by,bz])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "display(c uboid([1,1,1],[2,3,4],color=red));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 8 "cylinder" }} {PARA 0 "" 0 "" {TEXT -1 204 "Mit diesem Befehl wird ein (senkrechter) Zylinder erzeugt. Als Eingabe erwartet er die Koordinaten [mx,my,mz] \+ des Mittelpunktes des Grundkreises, den Radius r und die H\366he h des Zylinders. Mit der Option " }{TEXT 288 13 "capped=false " }{TEXT -1 53 "kann man verhindern, dass der Zylinder Deckel erh\344lt." }}{PARA 0 "" 0 "" {TEXT 289 26 "cylinder([mx,my,mz], r, h)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "dis play(cylinder([0,0,0],3,4,capped=false,style=patchnogrid,lightmodel=li ght3));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 12 "dodecahedron" }}{PARA 0 "" 0 "" {TEXT -1 207 "Erzeugt ein Dodekaeder (ein K\366rper mit 12 regelm\344\337igen 5 -Ecken als Begrenzungsfl\344chen). Als Eingabe werden der Mittelpunkt \+ [mx,my,mz] und ein Skalierungsfaktor r (Radius der einbeschriebenen Ku gel) erwartet." }}{PARA 0 "" 0 "" {TEXT 290 26 "dodecahedron([mx,my,mz ],r)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "display([seq(dodecahedron([5*cos(i*Pi/6),5*sin(i *Pi/6),0],1),i=0..12)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 10 "hemisphere" }}{PARA 0 "" 0 "" {TEXT -1 79 "Der Befehl erzeugt eine Halbkugel. Eingabe: Mittelpunk t [mx,my,mz] und Radius r" }}{PARA 256 "" 0 "" {TEXT 292 24 "hemispher e([mx,my,mz],r)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "display([hemisphere([0,0,1.5],-4), hemisphere([0,0,-1.5],4,capped=false,style=HIDDEN,color=blue,numpoints =80)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 10 "hexahedron" }}{PARA 0 "" 0 "" {TEXT -1 89 "Der Befehl erzeugt einen W\374rfel. Eingabe: Mittelpunkt [mx,my,m z] und halbe Kantenl\344nge a" }}{PARA 256 "" 0 "" {TEXT 293 24 "hexah edron([mx,my,mz],a)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "display([hexahedron([2,2,1], 3,style=line,color=navy),hexahedron([2,2,1],1.5)],scaling=constrained) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 " " 0 "" {TEXT -1 11 "icosahedron" }}{PARA 0 "" 0 "" {TEXT -1 105 "Der B efehl erzeugt ein Ikosaeder. Eingabe: Mittelpunkt [mx,my,mz] und Radiu s r der einbeschriebenen Kugel" }}{PARA 256 "" 0 "" {TEXT 294 25 "icos ahedron([mx,my,mz],r)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 142 "display([icosahedron([0,0,0 ],3,style=LINE,color=black,thickness=3),hemisphere([0,0,0],-3,color=bl ue,style=hidden,capped=false,numpoints=60)]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 10 "octahedron" }}{PARA 0 "" 0 "" {TEXT -1 103 "Der Befehl erzeugt ein Oktaeder. Eingabe: Mittelpunkt [m x,my,mz] und Radius r der umbeschriebenen Kugel" }}{PARA 256 "" 0 "" {TEXT 295 24 "octahedron([mx,my,mz],r)" }}{PARA 0 "" 0 "" {TEXT -1 9 " Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 124 "display([octahedron([0,0,0],3),hemisphere([0, 0,0],3,color=blue,style=LINE,capped=false,numpoints=60)],orientation=[ 100,50]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 11 "tetrahedron" }}{PARA 0 "" 0 "" {TEXT -1 98 "Der Befehl erzeugt ein Tetraeder. Eingabe: Mittelpunkt [mx,my,mz] \+ und einen Skalierungsfaktor s ( " }{XPPEDIT 18 0 "sqrt(3)/3;" "6#*&-%% sqrtG6#\"\"$\"\"\"\"\"$!\"\"" }{TEXT -1 40 " des Radius r der umbeschr iebenen Kugel)" }}{PARA 256 "" 0 "" {TEXT 296 25 "tetrahedron([mx,my,m z],s)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 254 "display([tetrahedron([0,0,0],1/3*sqrt(3)),hemis phere([0,0,0],-sqrt(1),color=blue,style=LINE,capped=false,numpoints=60 ),hemisphere([0,0,0],sqrt(1),color=blue,style=LINE,capped=false,numpoi nts=60)],orientation=[100,50],axes=boxed,view=[-2..2,-2..2,-2..2]);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 6 "sphere" }}{PARA 0 "" 0 "" {TEXT -1 75 "Der Befehl erzeu gt eine Kugel. Eingabe: Mittelpunkt [mx,my,mz] und Radius r" }}{PARA 256 "" 0 "" {TEXT 297 20 "sphere([mx,my,mz],r)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 147 "di splay([sphere([0,0,0],4,color=yellow,style=patchnogrid),cone([0,0,-9], 5,8,color=brown,style=patchnogrid)],lightmodel=light2,orientation=[50, 70]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 5 "torus" }}{PARA 0 "" 0 "" {TEXT -1 168 "Der Befehl erzeugt einen Torus. Eingabe: Mittelpunkt [mx,my,mz] und Radiu s r eines Meridians und Abstand R eines Mittelpunktes eines Meridians \+ vom Mittelpunkt des Torus" }}{PARA 256 "" 0 "" {TEXT 298 21 "torus([mx ,my,mz],r,R)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "display([torus([0,0,0],1,4,color=red),sph ere([0,0,0],3,color=blue)]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 " " {TEXT -1 9 "semitorus" }}{PARA 0 "" 0 "" {TEXT -1 221 "Der Befehl er zeugt einen Torusabschnitt. Eingabe: Mittelpunkt [mx,my,mz], Winkelber eich a..b des Ausschnittes (Bogenma\337) Radius r eines Meridians und \+ Abstand R eines Mittelpunktes eines Meridians vom Mittelpunkt des Toru s" }}{PARA 256 "" 0 "" {TEXT 299 30 "semitorus([mx,my,mz],a..b,r,R)" } }{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "display([semitorus([0,0,0],Pi/2..2*Pi,1,4,color=red), sphere([0,0,0],3,color=blue)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 21 "Transformationen (3 D)" }}{PARA 0 "" 0 "" {TEXT -1 107 "Die im Abschnitt \374ber 2D-Transf ormationen vorgestellten Befehle gelten entsprechend auch f\374r 3D-St rukturen." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "restart:with(pl ots):with(plottools):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "op t3d:=scaling=constrained,view=[-6..6,-6..6,-6..6],axes=boxed;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 9 "translate" }}{PARA 0 "" 0 "" {TEXT -1 227 "Mit diesem Befe hl kann man eine Plot-Struktur als Ganzes verschieben. Als Eingabe wir d die Plot-Struktur p und die Verschiebung delta_x in x-Richtung, delt a_y in y-Richtung sowie die Verschiebung delta_z in z-Richtung ben\366 tigt." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 300 39 "translate(p, del ta_x, delta_y, delta_z)" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "p:=sphere([0,0,0],2,numpoint s=200):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 115 "display([p,tran slate(p,2,2,-2),translate(p,2,-2,-2),translate(p,-2,2,-2),translate(p, -2,-2,-2)],lightmodel=light3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 5 "scale" }}{PARA 0 "" 0 "" {TEXT -1 247 "Mit diesem Befehl kann man eine Plotstruktur p bez \374glich eines Punktes [x,y,z] als Zentrum in Richtung der x-Achse um einen Faktor a und gleichzeitig in Richtung der y-Achse um einen Fakt or b und in Richtung der z-Achse um einen Faktor c strecken." }}{PARA 0 "" 0 "" {TEXT 301 22 "scale(p,a,b,c,[x,y,z])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "p:= sphere([0,0,0],1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "displ ay([p,scale(sphere([0,0,0],1,numpoints=100,style=line,color=green),4,2 .5,1.5,[0,0,0])]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 9 "homothety" }}{PARA 0 "" 0 "" {TEXT -1 176 "Mit diesem Befehl wird eine Plotstruktur p bez\374glich \+ eines Zentrums [x,y,z] mit dem Streckfaktor a zentrisch gestreckt (da s entspricht scale mit drei gleichen Streckfaktoren)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 302 22 "homothety(p,a,[x,y,z])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "p:=sphere([1,1,1],1):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "displa y([p,homothety(sphere([1,1,1],1,numpoints=200,style=line,color=green), 4,[1,1,1])]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 7 "reflect" }}{PARA 0 "" 0 "" {TEXT -1 465 "Mit diesem Befehl kann man eine Plotstruktur an einer Ebene,an einer Geraden oder an einem Punkt spiegeln. Man erh\344lt die gespieg elte Struktur als Ergebnis. Als Eingabe erwartet der Befehl eine Plots truktur und entweder einen Punkt (Punktspiegelung) oder eine Liste von zwei Punkten (Spiegelung an der durch diese Punkte definierte Gerade) oder eine Liste von 3 Punkten (Spiegelung an der durch die Punkte def inierte Ebene). Optionen k\366nnen nicht ver\344ndert werden. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 303 18 "reflect(p,[x,y,z])" } {TEXT 306 2 " " }{TEXT 305 35 " --> Spiegelung am Punkt [x,y,z]" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 304 34 "reflect(p,[[x1,y1,z1],[x 2,y2,z2]])" }{TEXT 308 8 " ---> " }{TEXT 307 51 "Spiegelung an der G eraden durch [x1,y1] und [x2,y2]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 309 45 "reflect(p,[[x1,y1,z1],[x2,y2,z2],[x3,y3,z3]])" }{TEXT 311 8 " ---> " }{TEXT 310 69 "Spiegelung an der Ebene durch [x1,y1,z 1] , [x2,y2,z2] und [x3,y3,z3]" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispie l:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "p:=display([torus([0,0 ,0],1,4,color=red),sphere([0,0,0],3,color=blue)]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "display([p,reflect(p,[[0,0,2],[1,0,2],[0,1, 2]])],view=[0..2,0..2,0..4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 6 "rotate" }}{PARA 0 "" 0 "" {TEXT -1 91 "Drehungen im Raum sind Drehungen um eine Achse (Gerade ). Dabei gilt die \"Linke-Hand-Regel\":" }}{PARA 0 "" 0 "" {TEXT -1 122 "H\344lt man den Daumen der linken Hand in positiver Richtung der \+ Drehachse, so geben die Finger der Hand die Drehrichtung an." }}{PARA 0 "" 0 "" {TEXT -1 52 "Alle Drehwinkel m\374ssen im Bogenma\337 angege ben werden." }}{PARA 0 "" 0 "" {TEXT -1 58 "plottools stellt zwei Dreh ungsm\366glichkeiten zur Verf\374gung:" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }{TEXT 312 26 "rotate(p,alpha,beta,gamma)" }}{PARA 0 "" 0 "" {TEXT -1 150 "Dies liefert nacheinander eine Drehung um den Winkel alpha um \+ die x-Achse, anschlie\337end um beta um die y-Achse und zum Schlu\337 \+ um gamma um die z-Achse." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 313 39 "rotate(p,alpha,[[x1,y1,z1],[x2,y2,z2]])" }}{PARA 0 "" 0 "" {TEXT -1 122 "Bei diesem Befehl wird die Struktur p um die durch die Liste m it zwei Punkten gegebene Gerade um den Winkel alpha gedreht." }}{PARA 0 "" 0 "" {TEXT -1 10 "Beispiele:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 130 "p:=display([sphere([0,0,0],4,color=yellow,style=patc hnogrid),cone([0,0,-9],5,8,color=brown,style=patchnogrid)],lightmodel= light2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "display([trans late(p,0,10,0),rotate(p,Pi/8,Pi/8,0)],orientation=[20,85],view=[-8..10 ,-8..18,-10..6]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 " " {TEXT -1 9 "transform" }}{PARA 0 "" 0 "" {TEXT -1 255 "Mit diesem Be fehl k\366nnen eigene Transformationsfunktionen erstellt werden. Als E ingabe wird eine Funktion mit 3 Variablen (x,y,z) erwartet, die als Er gebnis eine Liste mit 3 Zahlenwerten ausgibt, die aus den Eingabewerte n f\374r x, y und z berechnet werden. " }}{PARA 0 "" 0 "" {TEXT 314 46 "transform((x,y)->[f(x,y,z),g(x,y,z),h(x,y,z)])" }}{PARA 0 "" 0 "" {TEXT -1 9 "Beispiel:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "ft: =transform((x,y,z)->[x,sin(Pi*y),z^5]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "display(ft(sphere([0,0,0],1)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "ft:=transform((x,y,z)->[evalf(2*x*y),evalf(si n(Pi*y)),evalf(z^5)]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "d isplay(ft(sphere([0,0,0],1,numpoints=1000)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 8 "stellat e" }}{PARA 0 "" 0 "" {TEXT -1 142 "Mit diesem Befehl wird \374ber jede r Polygonfl\344che eines K\366rpers eine Pyramide errichtet, deren H \366he von einem Skalierungsfaktor h abh\344ngt. F\374r " }{XPPEDIT 18 0 "h < 1;" "6#2%\"hG\"\"\"" }{TEXT -1 58 " ist die Pyramide nach in nen gerichtet, sondt nach aussen." }}{PARA 0 "" 0 "" {TEXT 315 13 "ste llate(p,h)" }}{PARA 0 "" 0 "" {TEXT -1 10 "Beispiele:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "display([stellate(dodecahedron([0,0,0],1) ,2.5)],view=[-3..3,-3..3,-3..3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "display([stellate(dodecahedron([0,0,0],1),0.7)],view= [-2..2,-2..2,-2..2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 12 "cutout,cutin" }}{PARA 0 "" 0 " " {TEXT -1 253 "Diese beiden Befehle schneiden uas den Begrenzungsfl \344chen eines K\366rpers R\344nder aus. Bei cutout bleiben die R\344n der stehen, bei cutin die Innenfl\344chen. Ein Faktor h regelt, wievie l weggeschnitten wird. Dieser Befehl setzt automatisch den Stil PATCHN OGRID." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 316 11 "cutout(p,h)" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 317 10 "cutin(p,h)" }}{PARA 0 "" 0 "" {TEXT -1 10 "Beispiele:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 143 "display([cutout(sphere([0,0,0],numpoints=100),2/3),sphere([0,0,0] ,numpoints=100,color=black,style=line)],view=[-1.5..1.5,-1.5..1.5,-1.5 ..1.5]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 178 "display([cutin (sphere([0,0,0],numpoints=60),0.7),sphere([0,0,0],numpoints=60,color=b lack,style=line)],view=[-1.5..1.5,-1.5..1.5,-1.5..1.5],lightmodel=ligh t2,orientation=[45,60]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}}}{PARA 3 "" 0 "" {TEXT -1 0 "" }}}{MARK " 6" 0 }{VIEWOPTS 1 1 0 1 1 1803 }