获取3dgrid上位置的坐标

时间:2013-04-03 01:57:12

标签: delphi delphi-xe3 firemonkey-fm2

我有一个Firemonkey表单,表单上的3dgrid组件设置为(0,0,0)。我想在点击鼠标时获得网格上一个点的坐标。我知道如何获取光标的屏幕位置,但我需要3d网格本身相对于3dgrid上鼠标位置的坐标。

1 个答案:

答案 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;
    ...