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

Aktuelle Zeit: Di Jul 08, 2025 18:44

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Rotation um Punkt
BeitragVerfasst: Fr Aug 25, 2006 17:35 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Hi,

ich hab ein Problem. Eigentlich ein ganz einfaches. Aber entweder stehe ich gerade total auf dem Schlauch oder ich hab das Ganze doch nicht verstanden ^^..

Also Problem: Möchte ein Objekt um einen Punkt drehen.

Code:
Code:
  1.  
  2.               glLoadIdentity();
  3.               glColor4f(1,1,1,1);
  4.               glTranslatef(0,0,0);
  5.               glRotatef(360*animstat, 0, 1, 0);
  6.               glTranslatef(0,0,-45);
  7.               glusphere(quadratic,2,40,40);
  8.  


So. Bei obigen Code sollte sich das Ganze doch eigentlich um die eigene Achse drehen da der Koordinatenursprung nicht verschoben wurde.. oder? Jedenfalls dreht es sich so schon um irgendeinen Punkt, keine Ahnung wo der liegt, jedenfalls macht das Model einen grooooßen Kreis ^^. Auch wenn ich den Ursprung ein wenig verschiebe ändert sich nicht viel an der Sache.

Was mach ich denn nur falsch :roll: ?

Passi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 25, 2006 17:59 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Laut dem Code da oben gar nichts.
Wenn du den Ursprung wenig verschiebst verschiebst du den Kreis auch nur wenig, vielleicht kannst du es deshalb einfach nicht sehen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 25, 2006 18:11 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Ne das hab ich schon überprüft. Das Problem ist ja das der mit dem obigen Code schon nen rießen Kreis zieht -.-

Davor und danach kommen halt auch ein paar Sachen da wird die Matrix auch verschoben etc. aber das ist doch durch das LoadIdentity alles wieder futsch normalerweise oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 25, 2006 18:27 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Nur die vom aktuellen Matrixmode.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 25, 2006 18:44 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
ich weis zwar nicht, was gluSphere ist, aber wenn es eine Kugel ist, dann ist deren Mittelpunkt da, wo du gerade zeichnen möchtest, richtig?

Ich weis zwar nicht, was es bringen soll ne Kugel zu drehen, aber wenn es um den mittelpunkt gedreht werden sollte, solltest erst schieben (glTranslatef) und erst danach drehen (glRotatef), nicht andersrum.

btw, ein glTranslatef(0,0,0); ist doch sinnlos?
eine verschiebungsanweisung bei der du das objekt keinen milimeter verschiebst.

würde sagen:
zeile 4 streichen
zeile 5 und 6 tauschen.

glaub, dann hast du dein gewünschtes ziel.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Rotation um Punkt
BeitragVerfasst: Fr Aug 25, 2006 18:44 
Offline
DGL Member
Benutzeravatar

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

meiner Meinung nach führt der code zu folgender Berechnung:
Code:
  1.  
  2.               glRotatef(360*animstat, 0, 1, 0); // Rotation der Welt
  3.               glTranslatef(0,0,-45); // jetzt den rotierten Nullpunkt 45 Einheiten vom Mittelpunkt wegsetzen
  4.               glusphere(quadratic,2,40,40); // und dort die Sphere zeichnen
  5.  

Dh. es wär logisch, dass er einen großen Kreis zieht. Vergleiche auch Tutorial_Matrix2#Kombination_-_Rotate_vor_Translate.
Stattdessen solltest du erst den Nullpunkt verschieben und dann Rotieren. Denn die Rotation erfolgt um den Nullpunkt, nicht um die Kamera.

Edit: DGS war schneller ;)

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 26, 2006 01:18 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Ah ok, habs jetzt. Danke :)!

Passi


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 14 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.014s | 16 Queries | GZIP : On ]