0
我有一個Firemonkey窗體,其窗體設置爲(0,0,0)時帶有3dgrid組件。我想在點擊鼠標時獲取網格上某個點的座標。我知道如何獲得光標的屏幕位置,但我需要3d柵格上的座標相對於3dgrid上的鼠標位置。獲取3dgrid上某個位置的座標
我有一個Firemonkey窗體,其窗體設置爲(0,0,0)時帶有3dgrid組件。我想在點擊鼠標時獲取網格上某個點的座標。我知道如何獲得光標的屏幕位置,但我需要3d柵格上的座標相對於3dgrid上的鼠標位置。獲取3dgrid上某個位置的座標
你可以試試...
靈光
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;
...
Firemonkey在XE2以及XE3是兩個不同的東西,他們都沒有與'對象pascal'做。它們都是特定於Delphi的,它不是* Object * Pascal。你需要決定你的問題是關於FM(XE2)還是FM2(XE3)。 –
@ Kevin,謝謝。 – user1868232
@ Kevin我正在使用Rad Studio XE3的Delphi端,是不是Object-pascal?與C++ – user1868232