home *** CD-ROM | disk | FTP | other *** search
- /*
- * Name: Animation.REXX
- * Autor: Stefan Kebekus
- * Datum: 31.1.94
- *
- * Sinn: Demonstriert 3D-Graphik mit SIGMAth
- * Beschreibung:
- *
- * Dieses Programm zeichnet einen vom Benutzer definierten
- * Graphen einer Funktion zweier veränderlicher. Der Graph wird
- * in 100 Schritten gedreht; die Einzelbilder werden gespeichert.
- * Die Bilder können dann zu einer Animation zusammengefasst werden
- *
- */
-
- ADDRESS "rexx_SIGMAth" /* Verbindung zu SIGMAth herstellen */
- OPTIONS results /* ja, wir wollen Ergebnisse */
-
- MathError = "x"
- DO WHILE MathError~=""
- SAY '0C'x
- SAY '*** Animation ***' '0A'x
- SAY 'Dieses Programm erzeugt eine Animation. Ein 3-dimensionaler'
- SAY 'Funktionsgraph wird gedreht.' '0A'x
- SAY 'Bitte Funktion eingeben:'
- SAY 'f(u,v) = '
- PULL Term
-
- new_surface "u v "Term /* SIGMAth mit der eingegebenen Funktion füttern */
- IF MathError ~= "" THEN DO /* War die Funktion nicht korrekt ? */
- SAY '0A'x"Die Funktion war nicht korrekt: "MathError /* gleich anmeckern */
- SAY "Bitte <Return> drücken..."
- PULL Term
- END
- END
-
- MathError = "x"
- DO WHILE MathError~=""
- SAY '0A'x"Bitte Arbeitsbereich für die Variable u angeben:"
- PULL uStart
- PULL uStop
- SAY '0A'x"Bitte Arbeitsbereich für die Variable v angeben:"
- PULL vStart
- PULL vStop
-
- clr_Graph /* Graphik löschen */
- Licht "1 0 -0.5"
- SurfSteps "25"
- VekMode "1 2" /* Umschalten auf Schattiert */
- SurfPlot uStart uStop vStart vStop" 1 1 0" /* und zeichnen ... */
-
- IF MathError ~= "" THEN DO /* War die Funktion nicht korrekt ? */
- SAY '0A'x"Die Werte waren nicht korrekt: "MathError /* gleich anmeckern */
- SAY "Bitte <Return> drücken..."
- PULL Term
- END
- END
-
- SAY '0A'x"Bitte Auflösungen (horiz. & vert.) angeben:"
- PULL Horiz
- PULL Vert
-
- SAY '0A'x"Bitte Namen für die Bilddateien angeben:"
- PULL GName
-
- j = 0
- DO i=0 TO 355 BY 5
- DO_Rotate i" 0 10 3100"
- IF Length(j) < 3 THEN
- j = "0"j
- IF Length(j) < 3 THEN
- j = "0"j
- ILBM_Save Horiz Vert GName"."j
- j = j+1
- END
-
- clr_Graph /* Graphik löschen */
-
-