Hallo.
[Ich weiß, daß J3D hier eher ein Nischendasein fristet und clj.3d
eher angebracht wäre. Die Gruppe ist leider so gut wie tot, resp.
behandelt nur die absoluten Basics.]
Ich bin relativ verwirrt ob der Vielzahl an Transformationen, die mir
ein z.B. ein ViewInfo-Objekt liefert.
Ich möchte erreichen, daß ich per Mausklick auf eine Canvas3D aus
den Canvas3D-relativen Koordinaten des MouseEvents (per irgend einer
Transformation) räumliche Koordinaten in meiner Szenerie erhalten
kann, weiß allerdings nicht, wie ich es anfangen soll.
Canvas3D#getPixelLocationInImagePlate() ist es nicht (zumindest nicht
allein).
Die ViewPlatform liefert mir wohl die Position (Vector3d) und
Ausrichtung (Matrix3d, aus der ich dann auch die Blickrichtung
ermitteln kann) des Augpunktes, wenn ich das richtig verstanden habe.
Die Position meines zur Orientierung in der (ansonsten leeren)
Szenerie Achsenkreuzes kenne ich auch, bzw. kann diese leicht in
Erfahrung bringen.
Ich vermute, daß wenn ich auf die Canvas3D klicke, ich im Prinzip
auf die ImagePlate klicke und würde nun gern einen Sehstrahl aus
dem Augpunkt durch den durch den Mauszeiger indizierten Punkt der
ImagePlate senden, der in meine Szenerie läuft, um dort dann z.B.
den Schnittpunkt mit der XY-Ebene (oder einer sonstigen Ebene) zu
bestimmen.
Prinzipiell brauch' ich sowas, wie Picking; mit dem kleinen Unter-
schied, daß es hier darum geht, neu zu erstellende Objekte durch den
Benutzer sinnvoll plazieren zu lassen. Da deswegen noch nichts vor-
handen ist, auf das man deuten könnte, fällt Picking aus. Die Mouse-
Events passieren alle auf dem leeren Bereich der Canvas3D.
Es wäre schön, könnte mir jemand einen hilfreichen Schubs in die
richtige Richtung geben und mir verraten, welche Transform3Ds welcher
Objekte des Viewbranches ich in welcher Reihenfolge aneinanderreihen
muß, um die 2D-Koordinaten der Canvas3D in räumliche Koordinaten zu
überführen, aus denen ich den Sehstrahl konstruieren kann.
Sicherlich ist das schreiend trivial, ist steck' nur gerade komplett
fest und sehe es nicht.
Danke & Gruß,
André
Andre Bialojahn - 26 May 2004 19:19 GMT
> x-no-archive: yes
> [...]
Sorry, wrong group (and cancel doesn't work). It should've been
aimed at de.comp.lang.java. :-(
Regards,
André, fup2poster