home *** CD-ROM | disk | FTP | other *** search
- /*
- * Name: 3Demo.REXX
- * Autor: Stefan Kebekus
- * Datum: 29.7.92
- *
- * Sinn: Demonstriert 3D-Graphik mit SIGMAth
- * Beschreibung:
- *
- * Dieses Programm erzeugt einige 3D-Objekte und gibt sie aus.
- *
- */
-
- ADDRESS "rexx_SIGMAth" /* Verbindung zu SIGMAth herstellen */
- OPTIONS results /* ja, wir wollen Ergebnisse */
-
- clr_Graph /* Graphik löschen */
-
- Requester "[Wenn Sie es irgend ertragen|können, sollten Sie diese|Demo im Interlace-Modus|genießen.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- VekMode "1 0" /* Drahtgitter mit Koordinatenachsen */
- do_Rotate "0 10 10 3100" /* Vorderansicht, leicht geneigt */
-
- /* eine Spiralkurve */
-
- SIGMAth2Front
- new_Path "sin(u) cos(u) 0.2*u" /* Spiralkurve */
- PathSteps "150" /* viele Stützstellen */
- PathPlot "0 30 1 1" /* zeichnen */
- Requester "[Eine Spiralkurve][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- /* noch eine Spiralkurve */
-
- new_Path "u*sin(u) u*cos(u) 0.2*u" /* Konus-Spiralkurve */
- PathPlot "0 30 1 1" /* zeichnen */
- Requester "[Noch eine Spiralkurve][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- /* ein einfacher Funktionsgraph */
-
- new_surface "u v sin(u*u+v*v)"
- SurfSteps "25"
- SurfPlot "-1.1 1.1 -1.1 1.1 1 1 0"
- Requester "[Ein einfacher Funktions-|graph.][Weiter|Aufhören !]"
- if result = 1 then
- exit
- VekMode "1 1" /* Umschalten auf Hidden-Line */
- SurfPlot "-1.1 1.1 -1.1 0.6 1 1 0"
- Requester "[... im hidden-line-Modus][Weiter|Aufhören !]"
- if result = 1 then
- exit
- do_Rotate "0 40 20 3100" /* Ein wenig Rotieren */
- Requester "[... von der Seite gesehen][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- /* Jetzt wird ein UFO gemalt */
-
- new_surface "u v -cosh(u*u+v*v)"
- SurfSteps "10"
- SurfPlot "-1 1 -1 1 1 4 4"
- do_Rotate "10 10 10 3100" /* Ein wenig Rotieren */
- new_surface "2*sin(u)*cos(v) 2*sin(u)*sin(v) cos(u)-1"
- SurfSteps "20"
- SurfPlot "0 3.1415 0 6.283 0 5 6"
- Requester "[Falls Sie wollen, können Sie|mit SIGMAth auch|UFO´s malen.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- /* und zum Schluß der Weltuntergang */
-
- SurfSteps "15"
- new_surface "(2+cos(u))*cos(v) (2+cos(u))*sin(v) sin(u)"
- SurfPlot "0 6.283 0 6.283 1 4 4"
- new_surface "sin(u)*cos(v) sin(u)*sin(v) cos(u)+2"
- SurfPlot "0 3.1415 0 6.283 0 6 5"
- new_surface "u v cosh(u*u+v*v)"
- SurfPlot "-1 1 -1 1 0 5 6"
- Requester "[Ein Ei, kurz vor dem|Aufschlag.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
-
- /* Eine Menge Schattierter Funktionsgraphen */
-
- clr_Graph /* Graphik löschen */
- Licht "1 0 -0.5"
- SurfSteps "25"
- VekMode "1 2" /* Umschalten auf Schattiert */
- Requester "[Im Folgenden sehen Sie|einige Funktionsgraphen|2-Dimensionaler Funktionen.][Weiter|Aufhören !]"
- if result = 1 then
- exit
- new_surface "u v 25/(9+u*u+v*v)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ein Berg.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v -25*v/(9+u*u+v*v)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ein Berg und ein Tal.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v 25/(9+u*u+(v-3)^2)+25/(9+u*u+(v+3)^2)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Zwei Berge.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v v*v-u*u"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Eine Sattelfläche.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- clr_Graph /* Graphik löschen */
- Licht "1 0 0"
- do_Rotate "0 50 10 3100" /* Ein wenig Rotieren */
- new_surface "u v (v*v+0.1)*(u*u+v*v+0.1)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ein ´Graben´.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v v*(3*u*u-v*v)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Noch eine Sattelfläche.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- clr_Graph /* Graphik löschen */
- do_Rotate "0 30 10 3100" /* Ein wenig Rotieren */
- new_surface "u v -v*sqr abs (u*u)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ohne Worte][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v 2500/(50+(sqr(u*u+v*v)-3.5)^2)-1"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ein Vulkan (in Durchsicht).][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v 50*cos(.5*(u*u+v*v)/(3+u*u+v*v))"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[Ein Sombrero.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- new_surface "u v -cos(0.3*pi*u)*cos(pi*0.1*v)"
- SurfPlot "-5 5 -5 5 1 1 0"
- Requester "[2 Berge, 1 Tal.][Weiter|Aufhören !]"
- if result = 1 then
- exit
-
- clr_Graph /* Graphik löschen */
- Requester "[Damit ist diese Demo|beendet. Ich hoffe,|Sie hat Ihnen gut|gefallen !][Aufhören !]"
-