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

Aktuelle Zeit: Mi Jul 09, 2025 20:40

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



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 13, 2009 16:03 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Super! hat soweit alels funktioniert! jetzt hab ich aber ein Problem mit gluProject. Ich habe das forum durchforstet, komme aber auf einen grünen zweig.

Code:
  1. procedure WorldPosToScreenPos(wx,wy,wz : double;var sx,sy,sz : gldouble);
  2. var
  3.   x,y,z : GLDouble;
  4.   viewport : TGLVectori4;
  5.   modelview : TGLMatrixd4;
  6.   projection : TGLMAtrixd4;
  7. begin
  8.   //Bildschirmkoordinaten ermitteln
  9.   glGetDoublev(GL_MODELVIEW_MATRIX,@modelview);
  10.   glGetDoublev(GL_PROJECTION_MATRIX,@projection);
  11.   glGetintegerv(GL_VIEWPORT, @Viewport);
  12.   //showmessage(floattostr(wx));
  13.   if gluProject(wx,wy,wz,
  14.                 Modelview,Projection,Viewport,
  15.                 @x, @y,@z) = GL_FALSE then showmessage('ERROR: gluProject sent an error.');
  16.   sx := x;
  17.   sy := y;
  18.   sz := z;
  19. end;


Ein Fehler produziert gluProject zwar nicht, liefert mir aber unentwegt falsche Werte. Eine Idee?

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 13, 2009 16:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
hast du mal anstelle von gldouble ausprobiert glfloat zu verwenden? Das hat zwar eine niedrigere Genauigkeit, aber vielleicht gehts ja!?

Edit: nein das ist blödsinn, daran liegts bestimmt nicht... was bekommst du denn für Werte herraus und was für Werte erwartest du? Wie ist dein Viewport eingestellt?

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 13, 2009 16:29 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Viewport:

glViewport(0, 0, ClientWidth, ClientHeight);

Das Programm läuft auf Vollbild bei 1280x1024 px. Die Ergebnisse sind zu groß, immer etwa bei 10000px jeweils.

sehr seltsam das ganze...

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 13, 2009 17:39 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Ich habe bei einem mausklick die koordinaten umgerechent und irgendwie hatte das probleme gemacht. jetzt rechne ich direkt beim rendern die koordinaten aus und überprüfe halt erst beim klick.

EDIT: geht doch nicht, also wenn ich ein objekt direkt in der mitte des bildschirms platziere scheint es zu funkionieren, anders nicht.

EDIT2: okay :-D es geht doch. Ich bitte um Entschuldigung. ich habe an einer stelle umgerechnet, an der die matrix anders manipuliert war...

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 02:10 
Offline
DGL Member

Registriert: Mi Mai 06, 2009 15:57
Beiträge: 13
Würde es nicht reichen, sich die modelview-matrix mit glGetFloatv(GL_MODELVIEW_MATRIX, matrixarr); geben zu lassen und dort die entsprechenden coordinaten (sprich von der 4x4 matrix die letzte spalte) zu berücksichtigen? Die dort gespeicherten Koordinaten sind ja rel. zum Urspung (loadidentity) wenn ich mich nicht täusche. (Reihe 1-3 geben ja nur die Ausrichtungen bzw. die Lage der drei Achsen an).
Die kann man ja dann einfach mit einem beliebigen Bezugs-Punkt (z.b. der Sonne) verrechnen.

Kann natürlich auch sein, dass das totaler Quark ist was ich da vorschlag (bin ja noch ziemlich neu in der Materie) :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 13:17 
Offline
DGL Member

Registriert: Di Mai 12, 2009 14:32
Beiträge: 24
Also ich habe das ganze jetzt so umgesetzt wie Sellmann es vorgeschlagen hat. Aber es würde mich trotzdem interessieren, ob das so funktioniert wie inter2k3 es vorgeschlagen hat. also kann man dann praktisch doch die Koordinaten von OpenGL ausrechnen lassen, nachdem die matrix mit glrotatef und gltranslatef manipuliert wurde? :shock:

_________________
--
Christian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 16, 2009 13:45 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
gute frage, keine ahnung, das muss man mal ausprobieren. Klingt für mich irgendwie plausibel, aber irgendwie glaub ich dass das ganze noch ne macke hat...

funktionierts denn jetzt richtig?

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 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 ]