我有一个Firemonkey表单,表单上的3dgrid组件设置为(0,0,0)。我想在点击鼠标时获得网格上一个点的坐标。我知道如何获取光标的屏幕位置,但我需要3d网格本身相对于3dgrid上鼠标位置的坐标。
答案 0 :(得分:0)
你可以试试......
灵光
procedure TFormMain.EveOnMyLayer3D_MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Single; RayPos,
RayDir: TVector3D);
var
P3: TVector3D;
LocalX, LocalY: single;
begin
if MyLayer3D.RayCastIntersect(rayPos, rayDir, P3) then
begin
P3 := MyLayer3D.AbsoluteToLocalVector(P3);
LocalX := P3.X*MyLayer3D.Resolution;
LocalY := P3.Y*MyLayer3D.Resolution;
...