Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

OpenGL - Lissajous Figur

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 13.01.2007, 02:15    Titel: OpenGL - Lissajous Figur Antworten mit Zitat

Hi,
ich habe mich gerade mal wieder mit OpenGL beschäftigt und konnte das Programm 'Lissajous-Figur auf einem virtuellen Oszilloskop' anpassen.
Auch erstaunliche schnell, ohne besondere Trixereien anwenden zu müssen. happy
Code:
/' gl_Lissajous.bas (2) - by Volta - 12.01.2007
'  test mit FB 0.16 und FB 0.17(22.12.2006) unter ME
'  Lissajous-Figur auf einem virtuellen Oszilloskop
'  http://de.wikipedia.org/wiki/Lissajous-Figur
'/
'OpenGL
#Include Once "GL/gl.bi" 
#Include Once "GL/glu.bi"

Const degrad = Atn(1) / 45
Dim  As Single v, w, m, n, s
Dim Ik As String
Dim As Integer breit, hoch, y
Screen 18, 32, , 2'mit Screen 15 - 20 getestet
Screeninfo breit, hoch
Windowtitle "OpenGL - Lissajous Figur"

'++ Konfiguration von OpenGL
glViewport (0, 0, breit, hoch)
glMatrixMode (GL_PROJECTION)  ' Matrix definieren
glLoadIdentity
glOrtho (0, breit, hoch, 0,-128, 128) 'schaltet OpenGL in einen 2D-Modus
glMatrixMode (GL_MODELVIEW)
glEnable (GL_CULL_FACE)       ' Deaktivierung des Rendern der Rückseiten
glCullFace (GL_BACK)
glLoadIdentity
glClearColor (0.15, 0.1, 0.0, 0.0)'leichtes Leuchten :D
glEnable (GL_DEPTH_TEST)      ' Tiefentest
glDepthFunc (GL_LEQUAL)
glTranslatef (0,0,0) ' bewegt den Koordinaenursprung in den Punkt (x,y,z)
glEnable(GL_LINE_STIPPLE)

n=180 : w=90 : s=6
'++ Eigentlicher Zeichenteil
Do '++ Anzeige
  glClear (GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT)
  s = s -((Rnd-0.49)*.015)        ' Unruhe
  If Multikey(&h4B) Then s += .02 ' <- Taste
  If Multikey(&h4D) Then s -= .02 ' -> Taste
  '++ zeichnet die Linien
  glLineStipple (1, &H0003) 'Strichabstand
  For y = hoch/6 To hoch Step hoch/6
    glBegin (GL_LINES)
    glColor3f(1,0.69,0)
    glVertex2i(0, y)
    glVertex2i(breit, y)
    glEnd()
  Next
  For y = breit/10 To breit Step breit/10
    glBegin (GL_LINES)
    glColor3f(1,0.69,0)
    glVertex2i(y, 0)
    glVertex2i(y, hoch)
    glEnd()
  Next
  glLineStipple (1, &Hffff) 'Vollstrich
  glBegin (GL_LINE_LOOP)
  glColor3f(1,0.69,0)
  glVertex2i(1, 1)
  glVertex2i(breit-1, 1)
  glVertex2i(breit-1, hoch-1)
  glVertex2i(1, hoch-1)
  glEnd()
  For y= 0 To 359
    v = Sin(y*degrad*s) *(hoch/2.05) + (hoch/2)
    m = Cos(y*degrad)  *(breit/2.05) +(breit/2)
    glBegin (GL_LINES)
    glColor3f(0.56,1,0)
    glVertex2f(n, w)
    glVertex2f(m, v)
    glEnd()
    n = m
    w = v
  Next
  glFlush                         'Verarbeitung der Befehle
  Flip
  'ScreenSync
  Ik = Inkey                        ' Tastaturabfrage
  If Ik = Chr(3)       Then Exit Do ' wurde Ctrl+C gedrückt oder
  If Ik = Chr(255,107) Then Exit Do ' wurde X (AltGr+F4) gedrückt
Loop Until Ik = Chr(27)             ' oder ESC dann raus hier
End

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 13.01.2007, 11:05    Titel: Antworten mit Zitat

sieht schoen aus, aber leider hab ich nicht die geringste Ahnung was Lissajous Figur ist durchgeknallt
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.01.2007, 13:29    Titel: Antworten mit Zitat

Zitat:

Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz

Du solltest den Satz um die Wörter "oder bei Wikipedia" ergänzen Zunge rausstrecken
http://de.wikipedia.org/wiki/Lissajous-Figur

Gut gemacht lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 13.01.2007, 13:30    Titel: Antworten mit Zitat

recht hasst du
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.01.2007, 13:34    Titel: Antworten mit Zitat

Nein, ich hasse das Recht keineswegs Zunge rausstrecken

aber nun btt:
schöne darstellung lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz