2

OnGetHeightからポイントがロードされたTGLHeightFieldを持つGLSceneがあります。

私が解決しようとしているのは、mousemoveイベントでマウスが現在オーバーしているHeightFieldの3Dポイントです。

HeightFieldのhight(y)は、平面上の点(x、z)だけで実際に必要なわけではありません。

iveは試しGLSceneViewer1.Buffer.OrthoScreenToWorld(x, y) ましたが、それはカメラ面のポイントにすぎません。

4

1 に答える 1

4

(Demos \ Interfaceにある)hfpickデモを確認してください。PixelRayToWorldを使用してこれを行う方法を示します。

基本的に、あなたがすることは次のとおりです。

var
   v: TAffineVector;

...
      v := GLSceneViewer.Buffer.PixelRayToWorld(x, y)
      v := HeightField.AbsoluteToLocal(v);
于 2011-04-09T18:40:34.837 に答える