2013-04-03 56 views
0

我有一個Firemonkey窗體,其窗體設置爲(0,0,0)時帶有3dgrid組件。我想在點擊鼠標時獲取網格上某個點的座標。我知道如何獲得光標的屏幕位置,但我需要3d柵格上的座標相對於3dgrid上的鼠標位置。獲取3dgrid上某個位置的座標

+0

Firemonkey在XE2以及XE3是兩個不同的東西,他們都沒有與'對象pascal'做。它們都是特定於Delphi的,它不是* Object * Pascal。你需要決定你的問題是關於FM(XE2)還是FM2(XE3)。 –

+0

@ Kevin,謝謝。 – user1868232

+0

@ Kevin我正在使用Rad Studio XE3的Delphi端,是不是Object-pascal?與C++ – user1868232

回答

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