Forum: PC-Programmierung (QT-)Widget für 3D Körper Interaktion


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stephan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich recherchiere nach einer Art Widget (vorzugsweise QT), in das 
einfache 3D-Objekte geladen werden können und das idealerweise die 
Funktionen zum Auswählen von Flächen mit sich bringt.

Zunächst geht es um einen Würfel, der mit der Maus frei gedreht werden 
kann und wo der Benutzer auf eine der sechs Flächen klickt.
Ich hänge an dem Punkt herauszufinden, auf welche er den klickt:

Klickereigneisse auf Flächen in einer 2D-Umgebung sind mit QT 
komfortabel mit einer Hand voll Funktionen gelöst, für 3D finde in der 
Doku kein Equivalent dazu (bin mir nicht sicher ob soetwas denn 
exitiert).

Wie löst man das in einer 3D-Darstellung?

Stephan

P.S.: Ich habe mit QT bereits etwas  Erfahrung, bin damit aber nicht 
"verheiratet".

von volksvorg (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
Das ist weniger ein Qt- denn ein OpenGL-Problem.

OpenGL kennt einen GL_SELECT render mode, bei dem die Grafikpipeline 
durchlaufen wird, ohne wirklich etwas auf dem Bildschirm auszugeben. 
Stattdessen werden die "gezeichneten" Primitive mit 2D (Maus-) 
Koordinaten verglichen und in einem Hitbuffer gespeichert (s. 
glSelectBuffer() und glRenderMode(GL_SELECT)). Anschließend schaltest Du 
wieder in den "normalen" GL_RENDER mode zurück und holst dir die 
gepickten Primitive aus dem Hit Buffer.

Stattdessen kann man die Geschichte aber auch "ganz zu Fuß" angehen: aus 
den Mauskoordinaten und dem Blickvektor eine Linie konstruieren und 
potentielle Schnittpunkte mit deinem Modell berechnen. Der "erste" 
(naheliegendste) Schnittpunkt ist das angeklickte Objekt.

von Stephan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo  Marcus,

vielen Dank, mit den Schlagwörtern komme ich weiter! Dann ist es 
logisch, das QT diese Funktionen nicht (direkt) enthält.

Gruß

Stephan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.