Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » Rotation unabhängiger Objekte

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.05.2006, 13:25 Uhr
klimawandel



Hallo zusammen,

habe folgendes Problem:
Ich habe zwei Objekt die ich sperat behandeln will, also unabhängig voneinander verschieben.
meine display methode sieht folgendermassen aus:


Code:
void display(void)
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  
  glMatrixMode(GL_MODELVIEW); //Matrix wird geladen
  
  setUserView();
  ply->draw(); //zeichnet ein Polyeder

  glPushMatrix();
  drawSphere(-1.0,1.0,0.0); //zeichnet einen Kreis der sich am Ort (-1.0, 1.0, 0.0) befindet
  glPopMatrix();
  
  glutSwapBuffers();
}





Code:
void setUserView()
{
  glLoadIdentity();
  glTranslatef(-current_pos[0], current_pos[1], -current_pos[2]);
  glRotatef(angle2, 1.0, 0.0, 0.0);
  glRotatef(angle, 0.0, 1.0, 0.0);
}




Code:
void drawSphere(float x, float y,float z){
    glColor3f(1.0f, 1.0f, 0.0f);
    glRotatef(spini,1.0,0.0,0.0);
    glTranslatef(x,y,z);
    glutSolidSphere(0.3, 40, 30);
    glLoadIdentity();    
}






allerdings dreht sich der kreis (die Kugel) mit dem Polyeder mit.
Ich verstehe die Kombination aus LoadIdentity und Push/PopMatrix nicht wirklich.

Hat jemand einen Lösungsvorschlag.

Danke und Gruss
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.05.2006, 14:04 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, also:

pushmatrix schiebt die aktuelle matrix auf den stack, pop läd sie wieder. d.h du hast in deine drawSphere nur vergessen glLoadIdentity als erstes aufzurufen.
--
class God : public ChuckNorris { };

Dieser Post wurde am 09.05.2006 um 14:04 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.05.2006, 14:25 Uhr
klimawandel



Danke für deine Antwort.

Wenn ich glLoadIdentity() in meiner drawSphere Methode zuerst aufrufe, zeichnet es den Punkt nicht mehr. Ich kann nur den Polyeder sehen ??!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: