1

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

4

1 回答 1

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;
    ...
于 2013-06-22T16:23:23.797 回答