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

Aktuelle Zeit: Do Jul 17, 2025 21:53

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Vektoren werden mitgedreht....
BeitragVerfasst: Fr Mär 31, 2006 10:59 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Hallo, ich stecke mal wieder in der Klemme. Ich arbeite inwischen mit displaylists und nun drehe und kopiere ich die Elemente so oft ich sie brauche, allerdings ist mein Problem, dass sich auch die Schatten um den endsprechenden Winkel mitdrehen....
Wer kann helfen???
Code:
  1.  
  2.       glPushMatrix();
  3.       glLoadName(Elementname); //für die Mausauswahl
  4.       glBindTexture(GL_TEXTURE_2D, tex[Elementname]);
  5.       gltranslatef(Element[ELementNr].Punkte.P1[0],
  6.         Element[ELementNr].Punkte.P1[1],
  7.         Element[ELementNr].Punkte.P1[2]);
  8.       glRotatef(Winkel, 0, 1, 0);
  9.       glCallList(DLElement);
  10.       glPopMatrix();


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: na einmal zur verdeutlichung....
BeitragVerfasst: Fr Mär 31, 2006 13:38 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Die Kugeln in dem Bild hab ich mit den Displaylists gezeichnet. Die eine davon ist um 180 Grad gedreht. Und der Schatten ist genau falsch rum. Hab schon einige tuts gewälzt, bin aber noch zu keiner Lösung gekommen...[/img]


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mär 31, 2006 14:03 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Zeig mal wie du die Kugeldisplayliste erstellst.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 03, 2006 08:09 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Ich hab das so gestaltet, dass das nicht nur Kugeln sein können. Ich lese die Kontur eines gedrechselten Elements aus einer
XML-Datei aus und berechne die Vektoren dazu (Das ganze dann nur auf der xz-Achse) und rotiere das ganze dann so, dass ein 3D-Element entsteht.
Code:
  1.  
  2.       glNewList(DLEINLAGEN, GL_COMPILE);
  3.       for i := 0 to high(Kontur) - 1 do
  4.         begin
  5.           glBegin(gl_quads);
  6.           Vektor.x := Kontur[i].Vektor.x * Cos(DrehWinkel);
  7.           Vektor.y := Kontur[i].Vektor.y;
  8.           Vektor.z := Kontur[i].Vektor.x * Sin(DrehWinkel);
  9.           glNormal3f(Vektor.x, Vektor.y, Vektor.z);
  10.           gltexcoord2f(Kontur[i].V, 0);
  11.           glvertex3f(Kontur[i].xy.x, Kontur[i].xy.y, -Kontur[i].xy.x);
  12.           gltexcoord2f(Kontur[i + 1].V, 0);
  13.           glvertex3f(Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, -Kontur[i + 1].xy.x);
  14.           gltexcoord2f(Kontur[i + 1].V, 0.25);
  15.           glvertex3f(Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, Kontur[i + 1].xy.x);
  16.           gltexcoord2f(Kontur[i].V, 0.25);
  17.           glvertex3f(Kontur[i].xy.x, Kontur[i].xy.y, Kontur[i].xy.x);
  18.  
  19.           DrehWinkel:=DrehWinkel+Pi/2;
  20.  
  21.           Vektor.x := Kontur[i].Vektor.x * Cos(DrehWinkel);
  22.           Vektor.y := Kontur[i].Vektor.y;
  23.           Vektor.z := Kontur[i].Vektor.x * Sin(DrehWinkel);
  24.           glNormal3f(Vektor.x, Vektor.y, Vektor.z);
  25.           gltexcoord2f(Kontur[i + 1].V, 0.25);
  26.           glvertex3f(Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, Kontur[i + 1].xy.x);
  27.           gltexcoord2f(Kontur[i].V, 0.25);
  28.           glvertex3f(Kontur[i].xy.x, Kontur[i].xy.y, Kontur[i].xy.x);
  29.           gltexcoord2f(Kontur[i].V, 0.5);
  30.           glvertex3f(-Kontur[i].xy.x, Kontur[i].xy.y, Kontur[i].xy.x);
  31.           gltexcoord2f(Kontur[i + 1].V, 0.5);
  32.           glvertex3f(-Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, Kontur[i + 1].xy.x);
  33.  
  34.           DrehWinkel:=DrehWinkel+Pi/2;
  35.  
  36.           Vektor.x := Kontur[i].Vektor.x * Cos(DrehWinkel);
  37.           Vektor.y := Kontur[i].Vektor.y;
  38.           Vektor.z := Kontur[i].Vektor.x * Sin(DrehWinkel);
  39.           glNormal3f(Vektor.x, Vektor.y, Vektor.z);
  40.           gltexcoord2f(Kontur[i + 1].V, 0.5);
  41.           glvertex3f(-Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, Kontur[i + 1].xy.x);
  42.           gltexcoord2f(Kontur[i].V, 0.5);
  43.           glvertex3f(-Kontur[i].xy.x, Kontur[i].xy.y, Kontur[i].xy.x);
  44.           gltexcoord2f(Kontur[i].V, 0.75);
  45.           glvertex3f(-Kontur[i].xy.x, Kontur[i].xy.y, -Kontur[i].xy.x);
  46.           gltexcoord2f(Kontur[i + 1].V, 0.75);
  47.           glvertex3f(-Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, -Kontur[i + 1].xy.x);
  48.  
  49.           DrehWinkel:=DrehWinkel+Pi/2;
  50.  
  51.           Vektor.x := Kontur[i].Vektor.x * Cos(DrehWinkel);
  52.           Vektor.y := Kontur[i].Vektor.y;
  53.           Vektor.z := Kontur[i].Vektor.x * Sin(DrehWinkel);
  54.           glNormal3f(Vektor.x, Vektor.y, Vektor.z);
  55.           gltexcoord2f(Kontur[i + 1].V, 0.75);
  56.           glvertex3f(-Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, -Kontur[i + 1].xy.x);
  57.           gltexcoord2f(Kontur[i].V, 0.75);
  58.           glvertex3f(-Kontur[i].xy.x, Kontur[i].xy.y, -Kontur[i].xy.x);
  59.           gltexcoord2f(Kontur[i].V, 1);
  60.           glvertex3f(Kontur[i].xy.x, Kontur[i].xy.y, -Kontur[i].xy.x);
  61.           gltexcoord2f(Kontur[i + 1].V, 1);
  62.           glvertex3f(Kontur[i + 1].xy.x, Kontur[i + 1].xy.y, -Kontur[i + 1].xy.x);
  63.           glend;
  64.         end
  65.          
  66.         glEndList;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Ich habs!!!!
BeitragVerfasst: Mo Apr 03, 2006 09:35 
Offline
DGL Member

Registriert: Di Sep 28, 2004 15:46
Beiträge: 54
Bin eigendlich nur durch Zufall drauf gekommen... befand mich in der falschen Matrix beim Aufruf der Listen.
vorweg ein

glMatrixMode(GL_MODELVIEW);

und alles ist gut....


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.008s | 14 Queries | GZIP : On ]