- REM Vergleichen ob sinus CASIO PB700 = Sinus Freebasic
- REM
- REM Hintergrund: Winkelgrade / dezgrade als Para?
- '-------------------------
- 'DIMs
- DIM AS DOUBLE Pi, DrehgradZaehler
- Pi = 3.14159265358979323846
- 'rotate.bas - Eastler 27juli2008 - erzeugt einen Würfel, stellt den auf Ecke
- ' doch die Drehung um innere Achse läßt Würfel an oberer Spitze
- ' "eiern"
- '-------------------------
- 'Includes
- '-------------------------
- #include "fbgfx.bi"
- #include once "GL/gl.bi"
- #include once "GL/glu.bi"
- #include once "vbcompat.bi" 'um Zahlen per "format()" formatieren zu können
- '-------------------------
- 'Declarationen
- '-------------------------
- DECLARE SUB Wuerfel()
- '-------------------------
- ' das Fenster öffnen
- '-------------------------
- screen 19, 16, , 2
- '-------------------------
- ' Open-GL Init
- '-------------------------
- glViewport 0, 0, 800, 600 ' den Current Viewport auf eine Ausgangsposition setzen
- glMatrixMode GL_PROJECTION ' Den Matrix-Modus Projection wählen
- glLoadIdentity ' Diesen Modus auf Anfangswerte setzen
- gluPerspective 45.0, 800.0/600.0, 0.1, 100.0 ' Grundeinstellungen des Anezeigefensters festlegen
- glMatrixMode GL_MODELVIEW ' Auf den Matrix-Modus Modelview schalten
- glLoadIdentity ' und auch diesen auf Anfangswerte setzen
- glClearColor 0.5, 0.5, 0.50, 0.0 ' Setze Farbe für löschen auf Mittelgrau
- glClearDepth 1.0 ' Depth-Buffer Löschen erlauben
- glEnable GL_DEPTH_TEST ' den Tiefentest GL_DEPTH_TEST einschalten
- glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT 'Tiefen- und Farbpufferbits löschen
- '---------------------------
- 'HAUPTTEIL
- '---------------------------
- DO WHILE INKEY=""
- glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT 'Tiefen- und Farbpufferbits löschen
- glPushMatrix :'Matrixzusatand sichern
- glTranslatef 0, -1, -3 :'um 3 Einheiten von Kamera weg und eine Einheit
- :' tiefer, dann ist der Würfel gut zu sehen
- glRotatef DrehgradZaehler, 0, 1, 0 :'Dauerrotation um Y-Achse
- glRotatef 45, 1, 0, 1 :'auf Ecke, die auf 0,0,0 erzeugt wurde, stellen
- :' (45Grad um X und 45Grad um Y)
- wuerfel() :'Die SUB "Würfel" aufrufen, die den Würfel erstellt.
- flip :'alles auf Monitor
- glPopMatrix :'Matrixzusatand wieder herstellen
- DrehgradZaehler = DrehgradZaehler + 1 :'Wert für Dauerrotation erhöhen
- LOOP
- '---------------------------
- SUB Wuerfel()
- glBegin GL_QUADS
- 'einfach ein Würfel, untere vordere Ecke auf 0,0,0
- ' untere Seite, von unten draufschauend, GEGEN den Uhrzeigersinn
- glColor3f 0 , 1 , 0
- glVertex3f 1 , 0 , 0
- glVertex3f 0 , 0 , 0
- glVertex3f 0 , 0 , -1
- glVertex3f 1 , 0 , -1
- ' obere Seite, von oben draufschauend, gegen Uhrzeigersinn
- glVertex3f 1 , 1 , 0
- glVertex3f 1 , 1 , -1
- glVertex3f 0 , 1 , -1
- glVertex3f 0 , 1 , 0
- ' vordere Seite
- glColor3f 0 , 0 , 1
- glVertex3f 1 , 1 , 0
- glVertex3f 0 , 1 , 0
- glVertex3f 0 , 0 , 0
- glVertex3f 1 , 0 , 0
- ' hintere Seite
- glVertex3f 1 , 1 , -1
- glVertex3f 1 , 0 , -1
- glVertex3f 0 , 0 , -1
- glVertex3f 0 , 1 , -1
- ' linke Seite
- glColor3f 1 , 0 , 0
- glVertex3f 0 , 1 , 0
- glVertex3f 0 , 1 , -1
- glVertex3f 0 , 0 , -1
- glVertex3f 0 , 0 , 0
- ' rechte Seite
- glVertex3f 1 , 1 , 0
- glVertex3f 1 , 0 , 0
- glVertex3f 1 , 0 , -1
- glVertex3f 1 , 1 , -1
- glEnd
- END SUB