Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个带有 TGLHeightField 的 GLScene,它的点从其 OnGetHeight 加载。
我要解决的是鼠标当前在 mousemove 事件中鼠标在 HeightField 上的 3d 点。
高度场上的高度(y)实际上并不需要平面上的点(x,z)
我试过GLSceneViewer1.Buffer.OrthoScreenToWorld(x, y) 了,但这只是相机平面上的一个点。
GLSceneViewer1.Buffer.OrthoScreenToWorld(x, y)
查看 hfpick 演示(在 Demos\Interface 中)。它演示了如何使用 PixelRayToWorld 来做到这一点。
基本上,你要做的是:
var v: TAffineVector; ... v := GLSceneViewer.Buffer.PixelRayToWorld(x, y) v := HeightField.AbsoluteToLocal(v);