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

Aktuelle Zeit: Di Jul 15, 2025 21:02

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glRotate umrechnen
BeitragVerfasst: Do Dez 08, 2011 17:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Nov 30, 2011 21:41
Beiträge: 136
Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
Hallo allerseits,
Ich würde gerne eine Funktion programmieren die ungefäht so aussehen soll:
Code:
  1. function SetVector(XAxis, YAxis, ZAxis: single): TMyVector

Dabei soll in den einzelnen Variablen der Winkel stehen um den die Matrix um die jeweilige Achse rotieren soll.
In XAxis also die Rotation um die XAchse, usw.
der record TMyVector hat die Werte X,Y,Z und Angle. Ich will mit der Funktion sozusagen die drei Einzelrotationen um die jeweiligen Achse umrechnen, so dass OpenGL damit etwas anfangen kann. (EDIT: damit ich dann die Werte an glRotate übegeben kann)

Das Problem ist meine Umrechnungsmethode ist totaler Quatsch, weil sie funktioniert nur wenn um nur eine Achse gedreht wird. ^^
Daher würde ich mich sehr freuen, wenn ihr mir helfen könntet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate umrechnen
BeitragVerfasst: Do Dez 08, 2011 18:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Das Problem wenn du mit Winkeln arbeitest ist das diese Darstellung nicht eindeutig ist. Je nachdem in welcher Reihenfolge um die drei Achsen gedreht wird bekommst du ein anderes Ergebnis.

Zitat:
(EDIT: damit ich dann die Werte an glRotate übegeben kann)

Es ist ggf. einfacher direkt die richtige Matrix zu berechnen und diese dann mit glMultMatrix anzuwenden.
http://en.wikipedia.org/wiki/Rotation_r ... sentations
Diese 3x3-Matrix musst du dann noch mit einer Zeile (unten) und einer Spalte (rechts) von Nullen zu 4x4 ergänzen. In die untere rechte Ecke kommt eine 1.
Wenn Performance egal ist kannst du auch einfach dreimal glRotate benutzen ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate umrechnen
BeitragVerfasst: Do Dez 08, 2011 20:27 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Im GLScene Projekt gibt es die VectorGeometry.pas (früher Geometrie.pas) dort stehen einige solcher Berechnungen drin. Du kannst Dir vielleicht davon etwas abgucken -oder sie gleich benutzen-.
Diese Unit wird hier öfter bei den Beispielen der Tutorials benutzt.


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


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]