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.
Ich weiß zwar nicht was du mit Start- und Endvektor meinst, aber gluUnProject gibt dir die Objektkoordinate an einer bestimmten Fensterposition zurück.
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.
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.