Autor Beitrag
Webo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 577
Erhaltene Danke: 14

Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
BeitragVerfasst: Mo 20.08.12 11:47 
Ich habe mich gerade mal trotz Hitze im Raum an die Lernerei für eine Klausur gesetzt. Aus Übungszwecken wollte ich mal mehrere Aufgaben verbinden, in diesem Fall ein 3D-Stern zeichnen (ok, ich bin bis jetzt nur bis zum Würfel gekommen) und das ganze mit Display-listen verbinden.

Ich habe
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
list = glGenLists(1);

  glNewList(list, GL_COMPILE);
    glBegin(GL_QUADS);
      glVertex3f(-d, -d, d);
      glVertex3f(d, -d, d);
      glVertex3f(d, d, d);
      glVertex3f(-d, d, d);
    glEnd();
  glEndList();

  glCallList(list);
  glPushMatrix();
  
  glRotatef(90010);
  glCallList(list);

  glRotatef(90010);
  glCallList(list);

  glRotatef(90010);
  glCallList(list);

//Hier unten war eher Ratespiel mit Pop und Push
  glPopMatrix();
  glPushMatrix();
  glRotatef(90001);
  glCallList(list);
  glPopMatrix();
  glPushMatrix();
  glRotatef(180001);
  glCallList(list);
  glPopMatrix();


Solange das nicht rotiert ist alles in Butter ... aber wehe wenn doch. Dann fehlen wieder je nach Winkel Seiten vom Würfel. Dabei hab ich diesmal extra drauf geachtet, dass ich immer gegen den Uhrzeigersinn zeichne (muss ich ja eh nur einmal).

Ich habe da grade beim Schreiben eine Vermutung und zwar, dass das nach dem Rotieren und call der Liste doch nicht mehr gegen den Uhrzeigersinn ist, weil man einmal rotiert hat?!

Könnte mir jemand auf die Sprünge helfen wo der Fehler liegt?


Grüße

Webo

_________________
Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 20.08.12 13:24 
Hey,

normalerweiße nutzt man die Listen um mehr Daten rein zu packen, und nicht nur ein Quad. Beim letzten glRotate drehst du um 180°, wenn du aber die unterseite des Würfels haben willst, dann sollten das -90° sein. Einen anderen Fehler seh ich bei der Rotation nicht. Kannst du vlt ma noch n Bild anhängen?
Ich würde die Werte vom Würfel lieber alle per Hand eingeben und den kompletten Würfel in ne Displayliste packen. Oder du machst dir ne Methode, die dir eine Fläsche zeichnet, rufst die anstatt deiner DisplayListe auf und packst das dann alles in ne DisplayListe.

MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Webo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 577
Erhaltene Danke: 14

Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
BeitragVerfasst: Mo 20.08.12 13:55 
Stimmt, ich mach ja ein pop() auf die Matrix, da muss ich ja nur 90° ... hatte im Kopf, dass ich von der Oberseite direkt zur Unterseite gehe.
Das mit den Listen war jetzt auch eher zur Übung gedacht, weil mir die noch nicht ganz so geläufig sind.
Einloggen, um Attachments anzusehen!
_________________
Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 20.08.12 14:13 
Hey,

welche Seite is das, die da fehlt? Is das oben? Hast du jetzt 90 oder -90 genommen?! Ich gluab du hast 90 genommen und hast die Unterseite doppelt.

MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^