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

Aktuelle Zeit: Mo Jul 07, 2025 08:38

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: Mo Jul 28, 2003 17:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Habe folgendes Problem
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>
glRotatef(xRot,<span class='integer'>1</span>,<span class='integer'>0</span>,<span class='integer'>0</span>);
glRotatef(yRot,<span class='integer'>0</span>,<span class='integer'>1</span>,<span class='integer'>0</span>);
glTranslatef(-Pos.x,<span class='integer'>0</span>,-Pos.z);
//Zeichne Objekt

glScalef(<span class='integer'>5</span>,<span class='integer'>1</span>,<span class='integer'>5</span>);
//Zeichne Objekt <span class='integer'>2</span>

glTranslatef(<span class='integer'>1</span>,<span class='integer'>1</span>,<span class='integer'>1</span>);
//Zeichne Objekt <span class='integer'>3</span>
</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->
Die ersten Rotate Anweisungen sollen sich auf alle Objekt auswirken.
Jedoch das dritte Objekt soll nicht Skaliert werden vom Objekt 2. Objekt drei soll
nur die Rotate Anweisungen anwenden und seine Translate Anweisung.

Wie macht man so was? Wenn ich glPushMatrix und glPopMatrix benutze gehen die Rotate Befehle ja auch verloren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 17:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre> glRotatef(xRot,<span class='integer'>1</span>,<span class='integer'>0</span>,<span class='integer'>0</span>);
glRotatef(yRot,<span class='integer'>0</span>,<span class='integer'>1</span>,<span class='integer'>0</span>);
glTranslatef(-Pos.x,<span class='integer'>0</span>,-Pos.z);

//Zeichne Objekt

glPushMatrix;
glScalef(<span class='integer'>5</span>,<span class='integer'>1</span>,<span class='integer'>5</span>);
//Zeichne Objekt <span class='integer'>2</span>
glPopMatrix;

glTranslatef(<span class='integer'>1</span>,<span class='integer'>1</span>,<span class='integer'>1</span>);
//Zeichne Objekt <span class='integer'>3</span></pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Wo ist da jetzt das Problem?Mit ein wenig programmiertechnischer Grundkenntnis dürfte sowas doch im Handumdrehen gelöst sein...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Ich glaube wir haben uns falsch verstanden, oder ich verstehe die Anweisungen nicht. Bei Objekt 1 wird anschließend die Rotate Anweisung nicht ausgeführt oder? Es soll aber. nur die
Code:
  1. glTranslatef
Anweisungen sollen nur für das jeweilige Objekt funktionieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Irgendwie redest du in Rätseln <_< (oder ich versteh dich nicht), aber was lässt dich vermuten das die Rotateanweisungen für Objekt1 nicht ausgeführt werden?
Folgendes geschieht in meinem Quellcode mit deinen Objekten :

Objekt1 : Rotation -> |xRot|yRot|0| || Bewegung -> |-Pos.x|0|-Pos.z| || Skalierung -> |1|1|1|
Objekt2 : Rotation -> |xRot|yRot|0| || Bewegung -> |-Pos.x|0|-Pos.z| || Skalierung -> |5|1|5|
Objekt3 : Rotation -> |xRot|yRot|0| || Bewegung -> |-Pos.x+1|0|-Pos.z+1| || Skalierung -> |1|1|1|

Wenn du es anders willst, musst du halt deine Matrix anders pushen bzw. poppen...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 17:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Son of Satan hat geschrieben:
Irgendwie redest du in Rätseln <_< (oder ich versteh dich nicht

Ich habe mich etwas schwach ausgedrückt. :(


Aber ich werde es mal mit den Anweisungen versuchen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 18:11 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Wie wäre es so:

Code:
  1.  
  2. glRotatef(xRot,1,0,0);
  3. glRotatef(yRot,0,1,0);
  4.  
  5. glpushmatrix
  6.  &nbsp; glTranslatef(-Pos.x,0,-Pos.z);
  7.  &nbsp; //Zeichne Objekt
  8. glpopmatrix;
  9. glpushmatrix;
  10.  &nbsp; glScalef(5,1,5);
  11.  &nbsp; //Zeichne Objekt 2
  12. glpopmatrix;
  13.  &nbsp; glTranslatef(1,1,1);
  14.  &nbsp; //Zeichne Objekt 3
  15.  
  16.  


Oder verstehe ich dich nun auch falsch?

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 20:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ich glaube, sein Problem zu erkennen (hatte es auch mal :blink: )
Mit glPushMatrix allein werden die vorhergegangenen Veränderungen (rotate, translate) noch nicht "gelöscht", sondern erst, wenn dann noch ein glloadidentity aufgerufen wird. Also müssten die vorgeschlagenen Lösungen prinzipiell stimmen !!?

In der Hoffnung geholfen zu haben,
Ciao
La_Boda

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 29, 2003 22:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
La_Boda hat geschrieben:
Ich glaube, sein Problem zu erkennen (hatte es auch mal :blink: )
Mit glPushMatrix allein werden die vorhergegangenen Veränderungen (rotate, translate) noch nicht "gelöscht", sondern erst, wenn dann noch ein glloadidentity aufgerufen wird. Also müssten die vorgeschlagenen Lösungen prinzipiell stimmen !!?

In der Hoffnung geholfen zu haben,
Ciao
La_Boda

Genau das meinte ich.


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 2 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 | 15 Queries | GZIP : On ]