home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / SIGMAT25.DMS / in.adf / ARexxDemos / Animation.REXX < prev    next >
Encoding:
OS/2 REXX Batch file  |  1994-02-05  |  2.0 KB  |  79 lines

  1. /*
  2.  * Name:           Animation.REXX
  3.  * Autor:          Stefan Kebekus
  4.  * Datum:          31.1.94
  5.  *
  6.  * Sinn:           Demonstriert 3D-Graphik mit SIGMAth
  7.  * Beschreibung:
  8.  *
  9.  * Dieses Programm zeichnet einen vom Benutzer definierten
  10.  * Graphen einer Funktion zweier veränderlicher. Der Graph wird 
  11.  * in 100 Schritten gedreht; die Einzelbilder werden gespeichert.
  12.  * Die Bilder können dann zu einer Animation zusammengefasst werden
  13.  *
  14.  */
  15.  
  16. ADDRESS "rexx_SIGMAth"            /* Verbindung zu SIGMAth herstellen */
  17. OPTIONS results                /* ja, wir wollen Ergebnisse */
  18.  
  19. MathError = "x"
  20. DO WHILE MathError~=""
  21.     SAY '0C'x
  22.     SAY '*** Animation ***' '0A'x
  23.     SAY 'Dieses Programm erzeugt eine Animation. Ein 3-dimensionaler'
  24.     SAY 'Funktionsgraph wird gedreht.' '0A'x
  25.     SAY 'Bitte Funktion eingeben:'
  26.     SAY 'f(u,v) = '
  27.     PULL Term
  28.  
  29.     new_surface    "u v "Term    /* SIGMAth mit der eingegebenen Funktion füttern */
  30.     IF MathError ~= "" THEN DO    /* War die Funktion nicht korrekt ? */
  31.         SAY '0A'x"Die Funktion war nicht korrekt: "MathError    /* gleich anmeckern */
  32.         SAY "Bitte <Return> drücken..."
  33.         PULL Term
  34.     END
  35. END
  36.  
  37. MathError = "x"
  38. DO WHILE MathError~=""
  39.     SAY '0A'x"Bitte Arbeitsbereich für die Variable u angeben:"
  40.     PULL uStart
  41.     PULL uStop
  42.     SAY '0A'x"Bitte Arbeitsbereich für die Variable v angeben:"
  43.     PULL vStart
  44.     PULL vStop
  45.  
  46.     clr_Graph                /* Graphik löschen */
  47.     Licht        "1 0 -0.5"
  48.     SurfSteps    "25"
  49.     VekMode        "1 2"            /* Umschalten auf Schattiert */
  50.     SurfPlot    uStart uStop vStart vStop" 1 1 0"    /* und zeichnen ... */
  51.  
  52.     IF MathError ~= "" THEN DO    /* War die Funktion nicht korrekt ? */
  53.         SAY '0A'x"Die Werte waren nicht korrekt: "MathError    /* gleich anmeckern */
  54.         SAY "Bitte <Return> drücken..."
  55.         PULL Term
  56.     END
  57. END
  58.  
  59. SAY '0A'x"Bitte Auflösungen (horiz. & vert.) angeben:"
  60. PULL Horiz
  61. PULL Vert
  62.  
  63. SAY '0A'x"Bitte Namen für die Bilddateien angeben:"
  64. PULL GName
  65.  
  66. j = 0
  67. DO i=0 TO 355 BY 5
  68.     DO_Rotate    i" 0 10 3100"
  69.     IF Length(j) < 3 THEN
  70.         j    = "0"j            
  71.     IF Length(j) < 3 THEN
  72.         j    = "0"j            
  73.     ILBM_Save     Horiz Vert GName"."j
  74.     j    = j+1
  75. END
  76.  
  77. clr_Graph                /* Graphik löschen */
  78.  
  79.