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

Aktuelle Zeit: Fr Jul 18, 2025 08:11

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Exakte OpenGL-Position picken
BeitragVerfasst: Fr Jun 19, 2009 16:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Hallo,

ich habe ein Projekt, in dem ich Picking benutze, um auf beliebige Objekte zu positionieren und diese dann in die Mitte
des Bildschirms zu holen. Da ich immer den Start- und Endevektor der Objekte habe, kann ich dann genau die Mitte des
Objekts in der Mitte des Bildschirms anordnen. Das geht auch ganz gut für Objekte, die bestimmte Dimensionen nicht
überschreiten.
Habe ich jetzt ein sehr großes Objekt, will ich den Punkt, bei dem ich auf das Objekt geklickt habe, in die Mitte des Bild-
schirms befördern. Wie bekopmme ich aber jetzt die genaue Bildschirmkoordinate unter dem Mausklick heraus?

Ich habe folgendes gemacht:

Bildschirmposition des GL-Startvektors und GL-Endevektors holen.
Mit der Position des Mausklicks auf dem Bildschirm ein Verhältnis des Mausklicks zum GL-Startvektor/GL-Endevektor errechnen.
Dieses Verhältnis auf die GL-Vektoren anwenden und meine Szene positionieren.

In einigen Fällen klappt das auch. Ist das Objekt aber sehr groß und die Winkel stehen ungünstig, wird die Umrechnung
ungenau. Liegt einer der beiden GL-Punkte außerhalb des sichtbaren Bereichs, bekomme ich unsinnige Werte.

Weiß jemand Rat?

Danke,

Andree


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 19, 2009 20:26 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Ich weiß zwar nicht was du mit Start- und Endvektor meinst, aber gluUnProject gibt dir die Objektkoordinate an einer bestimmten Fensterposition zurück.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Hallo
BeitragVerfasst: Sa Jun 20, 2009 05:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Wenn ich ein Rohr zeichne, dann hat das eine Startposition und eine Länge. Durch die Länge wird auch die Position des Rohrendes definiert.
Klicke ich jetzt auf den Bildschirm und das Rohr, bekomme ich mit meinem Verfahren heraus, dass sich das Rohr unter der Maus befindet.
Mit den Informationen Start und Länge habe ich die beiden Positionen die ich benötige, um die Länge des Rohrs zu berechnen.

Ich habe jetzt versucht, mit GluUnproject zu arbeiten. Ich bekomme dann auch eine OpenGL-Position, aber da mir die Tiefeninformation fehlt, positioniere ich mit dem erzeugten OpenGL-Vektor leider nicht auf das Rohr, sondern irgendwo in meiner Szene. Je nachdem wie tief das Rohr im Bildschirm steht und wie ich es gedreht habe, ändert sich die verschiebung.

Ich möchte, das genau der Punkt des Rohres, das ich angeklickt habe identifiziert wird und ich den dann in die Mitte des Bildschirms holen kann. Das soll natürlich für beliebige Objekte möglich sein, deren Positionen und Ausdehnungen mir bekannt sind.

Danke,

Andree


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 20, 2009 06:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
Ich bekomme dann auch eine OpenGL-Position, aber da mir die Tiefeninformation fehlt,

schau mal im Wiki Artikel nach: http://wiki.delphigl.com/index.php/gluUnProject, dort ist angegeben, wie man auch die Tiefeninfo rauskriegt: glReadPixels


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 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.015s | 17 Queries | GZIP : On ]