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

Aktuelle Zeit: Fr Jul 04, 2025 18:50

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: rechtecke zeichnen
BeitragVerfasst: Mi Jan 15, 2003 17:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jan 02, 2003 13:38
Beiträge: 104
Wohnort: Bremen
tjo, weiß nich so recht ob ich jetzt fragen soll...aber hab ne gewisse zeit dran rumgebrütet und mir fällts wahrscheinlich nicht auf weil ich die funktionsweise von gl wohl nocht nicht ganz so verinnerlicht hab...

also, ich möchte 5 rechtecke zeichnen, und zwar so hab ich mir das gedacht:

Code:
  1.   glmatrixmode(gl_projection);
  2.  
  3.    glloadidentity;
  4.  
  5.    gluortho2d(0,1024,0,768);
  6.  
  7.   glmatrixmode(gl_modelview);
  8.  
  9.  
  10.  
  11.   for i:=0 to 2 do
  12.  
  13.   begin
  14.  
  15.   x:=x-66;
  16.  
  17.   x1:=x1-66;
  18.  
  19.  
  20.  
  21.  
  22.  
  23.   glpushmatrix;
  24.  
  25.   glbindtexture(gl_texture_2d,tex1);
  26.  
  27.   glbegin(gl_quads);
  28.  
  29.    gltexcoord2f(0,0); glvertex2d(x,y);
  30.  
  31.    gltexcoord2f(0,1); glvertex2d(x,y1);
  32.  
  33.    gltexcoord2f(1,1); glvertex2d(x1,y1);
  34.  
  35.    gltexcoord2f(1,0); glvertex2d(x1,y);
  36.  
  37.   glend();
  38.  
  39.   glpopmatrix;
  40.  
  41.   end;


x ist von anfang her 958
x1 ist 1024
y ist 0
und y1 ist 93

es solln also automatisch 5 rechtecke vom rechten unteren ran bis nach links gezeichnet werden. Nun tritt aber folgendes auf:

Er zeichnet die ganz kurz, löscht sie aber sofort wieder, also als ob das rechteck sich von rechts nach links bewegt...

dank schön,

Howi

_________________
------------------------------------------------------- <br>Wer andern eine Brawurst brät, <br>hat ein Bratwurst Bratgerät...... <br> <br>So long, Howard ^^ <br>-------------------------------------------------------


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 18:49 
Hi Howard,

ich habe den Code jetzt zwar nicht getestet, aber ich könnte mir folgendes vorstellen: Du vergisst wahrscheinlich, am Anfang des Renderns jedesmal x und y neu zu initialisieren. Wenn du das tust, dann sollte das Problem nicht mehr auftreten. Du solltest bedenken, dass ein Rendervorgang ja nicht nur einmal ausgeführt wird, sondern meistens in einer Schleife sitzt, und wenn jetzt die Variablen nicht neu initialisiert werden (im Renderloop), dann schweifen die natürlich ins Unendliche...

Gruß
Armin


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 18:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 10:50
Beiträge: 42
Wohnort: [Auch diese Steine können Sie klauen...]
Ergänzung (und diesmal auch eingeloggt...;) )

Ich würde das Problem aber nicht so lösen, wie du es machst. Versuche stattdessen lieber, mit glTranslatef die Objekte der Szene an die richtige Position zu verschieben. Die Matrix pushen nicht vergessen, und schon müsste es klappen. Das entspricht eher der Modellier-Philosophie von OpenGL.

Gruß
Armin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: rechtecke zeichnen
BeitragVerfasst: Mi Jan 15, 2003 19:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Zitat:
glpopmatrix;

Du popst 'ne Matrix ohne sie vorher zu pushen?! Nimm das da mal weg, vielleicht funktionierts dann.

@neuromancer: Wieso soll ers nich so machen?

Cyas,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: rechtecke zeichnen
BeitragVerfasst: Mi Jan 15, 2003 19:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jan 02, 2003 13:38
Beiträge: 104
Wohnort: Bremen
Zitat:
 

 glpushmatrix;
 glbindtexture(gl_texture_2d,tex1);
 glbegin(gl_quads);
  gltexcoord2f(0,0); glvertex2d(x,y);
  gltexcoord2f(0,1); glvertex2d(x,y1);
  gltexcoord2f(1,1); glvertex2d(x1,y1);
  gltexcoord2f(1,0); glvertex2d(x1,y);
 glend();
 glpopmatrix;
 end ;[/code]



wieder zuviel gekifft wa toby? ;)

_________________
------------------------------------------------------- <br>Wer andern eine Brawurst brät, <br>hat ein Bratwurst Bratgerät...... <br> <br>So long, Howard ^^ <br>-------------------------------------------------------


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 19:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Uh oh... da sieht man, wie ich meine Augen mit diesem Bildschirm kaputt mache... hat denn keiner Erbarmen? :wink:
Und das von neuromancer hab ich auch anders verstanden... :?
Aber wieso pushst und popst du die Matrix überhaupt? Ich probier den Code gleichmal aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 19:42 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jan 02, 2003 13:38
Beiträge: 104
Wohnort: Bremen
das war noch von nem testdurchlauf mit 2 rechtecken, ändert aber mit oder´ohne leider nichts

_________________
------------------------------------------------------- <br>Wer andern eine Brawurst brät, <br>hat ein Bratwurst Bratgerät...... <br> <br>So long, Howard ^^ <br>-------------------------------------------------------


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: rechtecke zeichnen
BeitragVerfasst: Mi Jan 15, 2003 19:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 10:50
Beiträge: 42
Wohnort: [Auch diese Steine können Sie klauen...]
Zitat:
@neuromancer: Wieso soll ers nich so machen?


Ein Vorteil meiner Methode ist, dass die Variablen nicht mehr in glVertex auftauchen, sie werden dann nur einmal und zwar absolut gesetzt - IMO übersichtlicher und weniger fehleranfällig.
Außerdem tust du dich bei etwas komplexeren Modellen mit Howards Methode unheimlich schwer. Aber wie gesagt, das ist eine Frage der Modellier-Philosophie...

Gruß
Armin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 19:53 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Zitat:
Und das von neuromancer hab ich auch anders verstanden...  :?

... :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 15, 2003 19:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jan 02, 2003 13:38
Beiträge: 104
Wohnort: Bremen
jau dat haut hin, besten dank totenbeschwörer :)

_________________
------------------------------------------------------- <br>Wer andern eine Brawurst brät, <br>hat ein Bratwurst Bratgerät...... <br> <br>So long, Howard ^^ <br>-------------------------------------------------------


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 18 Queries | GZIP : On ]