home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / SIGMAT25.DMS / in.adf / ARexxDemos / 3Demo.REXX < prev    next >
Encoding:
OS/2 REXX Batch file  |  1994-01-26  |  4.3 KB  |  164 lines

  1. /*
  2.  * Name:           3Demo.REXX
  3.  * Autor:          Stefan Kebekus
  4.  * Datum:          29.7.92
  5.  *
  6.  * Sinn:           Demonstriert 3D-Graphik mit SIGMAth
  7.  * Beschreibung:
  8.  *
  9.  * Dieses Programm erzeugt einige 3D-Objekte und gibt sie aus.
  10.  *
  11.  */
  12.  
  13. ADDRESS "rexx_SIGMAth"            /* Verbindung zu SIGMAth herstellen */
  14. OPTIONS results                /* ja, wir wollen Ergebnisse */
  15.  
  16. clr_Graph                /* Graphik löschen */
  17.  
  18. Requester "[Wenn Sie es irgend ertragen|können, sollten Sie diese|Demo im Interlace-Modus|genießen.][Weiter|Aufhören !]"
  19. if result = 1 then
  20.  exit
  21.  
  22. VekMode        "1 0"            /* Drahtgitter mit Koordinatenachsen */
  23. do_Rotate    "0 10 10 3100"        /* Vorderansicht, leicht geneigt */
  24.  
  25. /* eine Spiralkurve */
  26.  
  27. SIGMAth2Front
  28. new_Path    "sin(u) cos(u) 0.2*u"    /* Spiralkurve */
  29. PathSteps    "150"            /* viele Stützstellen */
  30. PathPlot    "0 30 1 1"        /* zeichnen */
  31. Requester "[Eine Spiralkurve][Weiter|Aufhören !]"
  32. if result = 1 then
  33.  exit
  34.  
  35. /* noch eine Spiralkurve */
  36.  
  37. new_Path    "u*sin(u) u*cos(u) 0.2*u"    /* Konus-Spiralkurve */
  38. PathPlot    "0 30 1 1"        /* zeichnen */
  39. Requester "[Noch eine Spiralkurve][Weiter|Aufhören !]"
  40. if result = 1 then
  41.  exit
  42.  
  43. /* ein einfacher Funktionsgraph */
  44.  
  45. new_surface    "u v sin(u*u+v*v)"
  46. SurfSteps    "25"
  47. SurfPlot    "-1.1 1.1 -1.1 1.1 1 1 0"
  48. Requester "[Ein einfacher Funktions-|graph.][Weiter|Aufhören !]"
  49. if result = 1 then
  50.  exit
  51. VekMode        "1 1"            /* Umschalten auf Hidden-Line */
  52. SurfPlot    "-1.1 1.1 -1.1 0.6 1 1 0"
  53. Requester "[... im hidden-line-Modus][Weiter|Aufhören !]"
  54. if result = 1 then
  55.  exit
  56. do_Rotate    "0 40 20 3100"        /* Ein wenig Rotieren */
  57. Requester "[... von der Seite gesehen][Weiter|Aufhören !]"
  58. if result = 1 then
  59.  exit
  60.  
  61. /* Jetzt wird ein UFO gemalt */
  62.  
  63. new_surface    "u v -cosh(u*u+v*v)"
  64. SurfSteps    "10"
  65. SurfPlot    "-1 1 -1 1 1 4 4"
  66. do_Rotate    "10 10 10 3100"        /* Ein wenig Rotieren */
  67. new_surface    "2*sin(u)*cos(v) 2*sin(u)*sin(v) cos(u)-1"
  68. SurfSteps    "20"
  69. SurfPlot    "0 3.1415 0 6.283 0 5 6"
  70. Requester "[Falls Sie wollen, können Sie|mit SIGMAth auch|UFO´s malen.][Weiter|Aufhören !]"
  71. if result = 1 then
  72.  exit
  73.  
  74. /* und zum Schluß der Weltuntergang */
  75.  
  76. SurfSteps    "15"
  77. new_surface    "(2+cos(u))*cos(v) (2+cos(u))*sin(v) sin(u)"
  78. SurfPlot    "0 6.283 0 6.283 1 4 4"
  79. new_surface    "sin(u)*cos(v) sin(u)*sin(v) cos(u)+2"
  80. SurfPlot    "0 3.1415 0 6.283 0 6 5"
  81. new_surface    "u v cosh(u*u+v*v)"
  82. SurfPlot    "-1 1 -1 1 0 5 6"
  83. Requester "[Ein Ei, kurz vor dem|Aufschlag.][Weiter|Aufhören !]"
  84. if result = 1 then
  85.  exit
  86.  
  87.  
  88. /* Eine Menge Schattierter Funktionsgraphen */
  89.  
  90. clr_Graph                /* Graphik löschen */
  91. Licht        "1 0 -0.5"
  92. SurfSteps    "25"
  93. VekMode        "1 2"            /* Umschalten auf Schattiert */
  94. Requester "[Im Folgenden sehen Sie|einige Funktionsgraphen|2-Dimensionaler Funktionen.][Weiter|Aufhören !]"
  95. if result = 1 then
  96.  exit
  97. new_surface    "u v 25/(9+u*u+v*v)"
  98. SurfPlot    "-5 5 -5 5 1 1 0"
  99. Requester "[Ein Berg.][Weiter|Aufhören !]"
  100. if result = 1 then
  101.  exit
  102.  
  103. new_surface    "u v -25*v/(9+u*u+v*v)"
  104. SurfPlot    "-5 5 -5 5 1 1 0"
  105. Requester "[Ein Berg und ein Tal.][Weiter|Aufhören !]"
  106. if result = 1 then
  107.  exit
  108.  
  109. new_surface    "u v 25/(9+u*u+(v-3)^2)+25/(9+u*u+(v+3)^2)"
  110. SurfPlot    "-5 5 -5 5 1 1 0"
  111. Requester "[Zwei Berge.][Weiter|Aufhören !]"
  112. if result = 1 then
  113.  exit
  114.  
  115. new_surface    "u v v*v-u*u"
  116. SurfPlot    "-5 5 -5 5 1 1 0"
  117. Requester "[Eine Sattelfläche.][Weiter|Aufhören !]"
  118. if result = 1 then
  119.  exit
  120.  
  121. clr_Graph                /* Graphik löschen */
  122. Licht        "1 0 0"
  123. do_Rotate    "0 50 10 3100"        /* Ein wenig Rotieren */
  124. new_surface    "u v (v*v+0.1)*(u*u+v*v+0.1)"
  125. SurfPlot    "-5 5 -5 5 1 1 0"
  126. Requester "[Ein ´Graben´.][Weiter|Aufhören !]"
  127. if result = 1 then
  128.  exit
  129.  
  130. new_surface    "u v v*(3*u*u-v*v)"
  131. SurfPlot    "-5 5 -5 5 1 1 0"
  132. Requester "[Noch eine Sattelfläche.][Weiter|Aufhören !]"
  133. if result = 1 then
  134.  exit
  135.  
  136. clr_Graph                /* Graphik löschen */
  137. do_Rotate    "0 30 10 3100"        /* Ein wenig Rotieren */
  138. new_surface    "u v -v*sqr abs (u*u)"
  139. SurfPlot    "-5 5 -5 5 1 1 0"
  140. Requester "[Ohne Worte][Weiter|Aufhören !]"
  141. if result = 1 then
  142.  exit
  143.  
  144. new_surface    "u v 2500/(50+(sqr(u*u+v*v)-3.5)^2)-1"
  145. SurfPlot    "-5 5 -5 5 1 1 0"
  146. Requester "[Ein Vulkan (in Durchsicht).][Weiter|Aufhören !]"
  147. if result = 1 then
  148.  exit
  149.  
  150. new_surface    "u v 50*cos(.5*(u*u+v*v)/(3+u*u+v*v))"
  151. SurfPlot    "-5 5 -5 5 1 1 0"
  152. Requester "[Ein Sombrero.][Weiter|Aufhören !]"
  153. if result = 1 then
  154.  exit
  155.  
  156. new_surface    "u v -cos(0.3*pi*u)*cos(pi*0.1*v)"
  157. SurfPlot    "-5 5 -5 5 1 1 0"
  158. Requester "[2 Berge, 1 Tal.][Weiter|Aufhören !]"
  159. if result = 1 then
  160.  exit
  161.  
  162. clr_Graph                /* Graphik löschen */
  163. Requester "[Damit ist diese Demo|beendet. Ich hoffe,|Sie hat Ihnen gut|gefallen !][Aufhören !]"
  164.