Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Sep 07, 2025 21:50

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 00:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 04, 2003 00:19
Beiträge: 4
Hi Leute,

bin grad dabei, mich an den Tutorials zu versuchen. Ist bisher echt interessant, auch wenn ich noch nich viel geschafft habe :D Hier ist erstmal der Quelltext meiner Drawscene-Prozedur:

Code:
  1.  
  2. procedure Tform1.DrawScene;
  3. begin
  4. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  5. glViewport(0, 0, feld.Width, feld.Height);
  6. glloadidentity;
  7. glEnable(GL_DEPTH_TEST);
  8. glPolygonMode(GL_FRONT_AND_BACK, GL_fill);
  9.  
  10. gltranslatef(i,j,k);
  11.  
  12. glBegin(GL_TRIANGLES);
  13. glVertex3f(-0.9,0.0,0.0);
  14. glVertex3f(-0.5,0.9,0.0);
  15. glVertex3f(-0.1,0.0,0.0);
  16.  
  17. glEnd;
  18. glflush;
  19. SwapBuffers(DC);
  20. end;
  21.  


Ich habe also ein simples Dreieck, welches auf einem Panel dargestellt wird. Außerdem habe ich auf der Form noch 3 Editfelder mit denen ich die Variablen i,j und k ändere. Mit einem Button kann ich das ganze dann anzeigen lassen... Auf der x und y Achse kann ich das Dreieck ohne Probleme verschieben. Theoretisch müsste das Dreieck jetzt doch, wenn ich es beispielsweise um -2 Einheiten auf der z-Achse verschiebe, etwas weiter entfernt auftauchen, also kleiner sein. Allerdings bleibt das Panel bei mir dann schwarz <_< Oder liegt das daran, dass das Dreieck dann außerhalb meiner "Sichtweite" ist? An welchem Punkt des Koordinatensystems befinde ich mich eigentlich und in welche Richtung schaue ich? Der Ursprung ist ja zentral in der Mitte - befinde ich mich also auf der z-Achse im positiven Bereich und schaue in den negativen z-Achsen-Bereich??? Welchen Abstand vom Ursprung habe ich ? Oder mach ich grad 'n Denkfehler? <_<
hoffe jemand versteht mich und kann mir helfen.....werde in der Zwischenzeit meine Testphase mal fortsetzen :)

cu


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 01:35 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Mai 04, 2002 20:04
Beiträge: 12
hi
also das hier "glViewport(0, 0, feld.Width, feld.Height);" kannst du gleich mal weglassen. das brauchst du da nicht. aber trägt jetzt nicht zu deinem problem bei.
geschickt wäre nachtürlich wenn du folgendes nach der initialisierung aufrufst bzw, wenn sich die größe des panels ändert:

Code:
  1.  &nbsp;
  2. var w, h: Integer;
  3. begin
  4.  &nbsp;w := Panel1.ClientWidth;
  5.  &nbsp;h := Panel1.ClientHeight;
  6.  
  7.  &nbsp;glViewport(0, 0, w, h);
  8.  &nbsp;//Projektionsmatrix resetten
  9.  &nbsp;glMatrixMode(GL_PROJECTION);
  10.  &nbsp;glLoadIdentity;
  11.  &nbsp;//Perspektivische Darstellung
  12.  &nbsp;gluPerspective(60.0, w/h, 1, 1000);
  13.  &nbsp;glMatrixMode(GL_MODELVIEW);
  14.  &nbsp;glLoadIdentity;


bei gluperspective musst du den sichtwinkel, breite und höhe sowie die sichtweite angeben. das sollte dein problem lösen.
im 2. tutorial is das mit dem achsensystem ganz genau beschrieben so dass es jeder kapiert.

mfg
phoenix


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 03:22 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 04, 2003 00:19
Beiträge: 4
Weiß zwar noch nicht wirklich, was der Unterschied zwischen Projektionsmatrix und Modellmatrix ist, aber es funktioniert - vielen Dank für die Hilfe :D - nun brauche ich erstmal ne Portion Schlaf :gähn:

Edit: Sehe grad, dass du heute Deinen ersten Geburtstag hier im Board hast und damit genau ein Jahr älter bist, als ich :D - happy birthday


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 06:54 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
um es knapp und verständlich zu sagen und du ein bisschen ne ahnung hast, was die matrizen sind:

projektionsmatrix:
einfach gesagt ist dort alles drin, was mit dem zu tun hat, wie es projiziert wird. das heißt, wenn du die ansicht irgendwie ändern willst (z.B. von perspektivischer sicht auf orthogonale), dann muss das hier rein.

modelmatrix:
in dieser matrix befinden sich deine objekte, d.h. wenn du z.B. nen würfel machst, musst du vorher glMatrixMode(GL_MODELVIEW); aktivieren, damit das objekt auch in die richtige matrix gespeichert wird.

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 08:46 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
@unterschied zwischen modelview und projektionsmatrix: eigentlich besteht da kein unterschied. die beide matrizen werden für berechnungen immer zusammenmultipliziert. es ist allerdings geschickt, 2 unterschiedlieche matrizen zu haben, da du oft die projektionseigenschaften nicht verändern willst, sondern nur die ansicht und da bieten sich 2 unterschiedliche matrizen einfach an.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 13:00 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Mai 04, 2002 20:04
Beiträge: 12
jo matrizen solltest du auf jeden fall verstehen, sonst kannst du gleich mit opengl aufhören

ich und geburtstag?? ich hab doch heut gar kein geburtstag...

mfg
phoenix


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 13:08 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
er meint, das du hier seit einem Jahr Mitglied bist... ;)

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 04, 2003 13:36 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Mai 04, 2002 20:04
Beiträge: 12
oh achso ok ^^


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]