\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fswiss\fprq2 Arial;}{\f4\froman\fprq2 Times New Roman;}{\f5\fmodern\fprq1 Courier New;}}
{\colortbl\red0\green0\blue0;\red0\green128\blue0;\red255\green0\blue0;\red0\green0\blue255;}
\deflang1031\pard\ri4\plain\f5\fs20\cf0\b ________________________________________________________________________________
\par
\par \plain\f5\fs20\cf0 Inhalt....: Abwickeln eines Fadens von einem Zylinder (Animation 3D)
\par Kategorie.: Grafik
\par Mathematik: Grafik
\par MuPAD.....: 3.1.1
\par Datum.....: 2005-04-04
\par Autoren...: Andreas Sorgatz
\par Funktionen: plot::Translate3d, plot::Rotate3d, plot::Cylindrical, plot::Tube
\par Funktionen: plot::Surface, CameraDirection, Spacing, Margin, AnimationStyle
\par Funktionen: BackAndForth, Mesh, Submesh, FillColorType, Rainbow, Frames, Axes
\par Funktionen: Frame, FillColorDirection, piecewise, YAxesVisible, BorderWidth
\par \plain\f5\fs20\cf0\b ________________________________________________________________________________
\par \plain\f3\fs40\cf0
\par Abwickeln eines Fadens von einem Zylinder
\par
\par \plain\f3\fs24\cf1 Dieses Arbeitsblatt demonstriert den Einsatz von MuPAD Grafikfunktionen und Grafikoptionen
\par anhand eines Beispiels.\plain\f3\fs40\cf0\b
\par \plain\f3\fs24\cf0
\par Die folgenden Grafiken zeigen Schritt f\'fcr Schritt den Ablauf des Abrollens eines Fadens von
\par einem Zylinder.\plain\f3\fs40\cf0
\par \plain\f3\fs28\cf0
\par \plain\f3\fs24\cf0 Vorab ein paar Konstanten, die die Szene und Animation steuern.
\par \plain\f3\fs28\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}ZylRadius := 1.8: // Radius des Zylinders
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 SpiRadius := 0.2: // Radius des Fadenquerschnitts
\par SpiWindungen := 5: // Anzahl der Windungen auf dem Zylinder
\par Pi := float(PI): // PI sollte numerisch verwendet werden
\par MaxZeit := 2*Pi*SpiWindungen: // mathematische Zeit zum Abwickeln
\par
\par \pard\ri4\plain\f3\fs24\cf0 Der Zylinder steht zun\'e4chst (senkrecht) im Nullpunkt und wird linear in x-Richtung
\par verschoben und entsprechend der Windungszahl des Fadens rotiert. So entsteht
\par der Effekt des Rollens auf einer Ebene. Richtig sichtbar wird der Effekt jedoch
\par erst mit einer entsprechenden F\'e4rbung der Zylinderoberfl\'e4che.
\par \plain\f3\fs28\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}Zylinder:=
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 plot::Translate3d( [t,0,0], t = 0..MaxZeit,
\par plot::Rotate3d( w, w=0..SpiWindungen*2*Pi,
\par plot::Cylindrical(
\par [ZylRadius-0.01,phi,z],
\par phi=0..2*PI,
\par z=-SpiRadius..2*Pi+SpiRadius,
\par FillColorType = Rainbow,
\par FillColorDirection = [0,1,1],
\par Mesh = [4,4],
\par Submesh = [6,0]
\par )
\par )
\par )
\par
\par \pard\ri4\plain\f3\fs24\cf0 Zum Zeitpunkt 't' ist der Faden linker Hand (z<=t) abgewickelt - also linear - und rechter
\par Hand (z>t) noch aufgewickelt. Letzteres wird durch eine einfache Spirale (sin und cos)
\par modelliert:
\par \plain\f3\fs28\cf0 \plain\f4\fs28\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}SpiFunX:= (z,t) -> piecewise( [z<=t, z ],
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 [z>t, (ZylRadius+SpiRadius)*sin(z-t)+t] );
\par SpiFunY:= (z,t) -> piecewise( [z<=t, (ZylRadius+SpiRadius)],
\par [z>t, (ZylRadius+SpiRadius)*cos(z-t) ] )
\par
\par \pard\ri4\plain\f3\fs24\cf0 Hier wird \plain\f5\fs24\cf2 plot::Tube\plain\f3\fs24\cf0 zur Darstellung des Fadens verwendet, da dies oft glatter und
\par sch\'f6ner aussieht als bei der Verwendung einer Kurve in der Form \plain\f5\fs24\cf2 plot::Curve3d\plain\f3\fs24\cf0 .
\par
\par Allerdings ist der Rechenaufwand auch h\'f6her. MuPAD Grafikobjekte erlauben auch
\par die Verwendung st\'fcckweise definierter Funktionen.
\par \plain\f3\fs28\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}Spirale:= plot::Tube(
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 [SpiFunX(z,t), SpiFunY(z,t), 1/SpiWindungen*z], SpiRadius,
\par z = 0..MaxZeit,
\par t = 0..MaxZeit,
\par FillColorType = Dichromatic,
\par FillColor = RGB::Red,
\par FillColor2 = RGB::Yellow,
\par VLinesVisible = FALSE,
\par Mesh = [99, 3]
\par )
\par
\par \pard\ri4\plain\f3\fs24\cf0 Wir deuten noch eine Ebene an, auf der sich der Zylinder abrollt. Die Lebenszeit
\par (\plain\f5\fs24\cf2 TimeRange\plain\f3\fs24\cf0 ) beginnt 0.3 Sekunden vor dem Start des Abrollens und ist ent-
\par sprechend l\'e4nger, um am Anfang und Ende der Animation je eine kleine Pause
\par zu erzeugen:
\par \plain\f3\fs28\cf2
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}Ebene:= plot::Surface(
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 [x, ZylRadius+SpiRadius+SpiRadius/2, y],
\par x = 0-2*ZylRadius..MaxZeit+2*ZylRadius,
\par y = 0-ZylRadius..2*Pi+SpiRadius+SpiRadius/2+ZylRadius,
\par FillColorType = Dichromatic,
\par FillColor = RGB::Yellow.[0.7],
\par FillColor2 = RGB::Blue.[0.7],
\par TimeRange = -0.3..5+0.3,
\par Mesh=[11,5]
\par )
\par
\par \pard\ri4\plain\f3\fs24\cf0 Nun zeichnen wir alles: ~5 Sekunden Animation mit 20 Bildern pro Sekunde. Die
\par Achsenmarkierungen (\plain\f5\fs24\cf2 XTicksDistance\plain\f3\fs24\cf0 ) werden noch nach pers\'f6nlicher Vorliebe
\par gesetzt und wir schauen von vorn auf die Szene. Die Berechung dauert auf meinem
\par Laptop ca. 30 Sekunden.
\par
\par Um das Erzeugen der Animation zu beschleunigen, kann man die Anzahl der
\par Bilder pro Sekunde (\plain\f5\fs24\cf2 Frames\plain\f3\fs24\cf0 ) herunsetzen.
\par \plain\f5\fs28\cf2
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f5\fs24\cf2 {\pntext\f1\'b7\tab}plot(
\par \pard\li600\ri1\fi-300\plain\f5\fs24\cf2 Ebene, Zylinder, Spirale,
\par Height = 80,
\par Width = 180,
\par TimeRange = 0..4,
\par Frames = 4*20,
\par XTicksDistance = 1,
\par YAxisVisible = FALSE,
\par Axes = Frame,
\par CameraDirection = [0, -250, 2*Pi+SpiRadius],
\par BackgroundStyle = Pyramid,
\par Spacing = 0, Margin = 0, BorderWidth = 0.5,
\par AnimationStyle = BackAndForth
\par ):
\par
\par \pard\ri4\plain\f5\fs20\cf0\b ________________________________________________________________________________
\par \plain\f3\fs22\cf3\b
\par \plain\f3\fs22\cf1\b Anmerkungen:\plain\f3\fs22\cf1
\par \plain\f3\fs20\cf1\b 1\plain\f3\fs20\cf1 . Weitere Anregungen zum Einsatz von MuPAD in der Lehre finden Sie auf unserem WebPortal
\par \plain\f3\fs20\cf1\i MuPAD in Schule und Studium\plain\f3\fs20\cf1 unter: \plain\f3\fs20\cf3 http://schule.mupad.de\plain\f3\fs20\cf1 bzw. \plain\f3\fs20\cf3 http://studium.mupad.de\plain\f3\fs20\cf1 .
\par \plain\f5\fs20\cf0\b ________________________________________________________________________________
\par \plain\f4\fs28\cf0
\par }