2 Stimmen

GlScene Maus auf das TGLHeightField zeigen

Ich habe eine GLScene mit einem TGLHeightField mit es Punkte aus seiner OnGetHeight geladen.

Was ich versuche, herauszufinden ist, was 3d Punkt auf dem HeightField die Maus derzeit über in der Mousemove-Ereignis ist.

Die Höhe (y) auf dem HeightField wird nicht wirklich benötigt, nur der Punkt auf der Ebene (x,z)

Ich habe versucht GLSceneViewer1.Buffer.OrthoScreenToWorld(x, y) aber das ist nur ein Punkt auf der Ebene der Kameras.

4voto

Paul-Jan Punkte 16398

Sehen Sie sich die hfpick-Demo an (unter Demos \Interface ). Es wird gezeigt, wie man dies mit PixelRayToWorld macht.

Im Grunde genommen tun Sie Folgendes:

var
   v: TAffineVector;

...
      v := GLSceneViewer.Buffer.PixelRayToWorld(x, y)
      v := HeightField.AbsoluteToLocal(v);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X