자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

TForm

    |-TViewport3D1

                 |-TLayout3D

                                |-TImage3D

위와 같은 구조인데요.

 

TImage3D를 마우스로 드레그하여 위치를 이동하고 싶습니다. 


Uses FMX.Platform;

...

... 

VAR
  MousePosition1,  MousePosition2: TPointF;

...

...

Procedure MouseDown(.......);

Begin

  // Image3D1을 마우스로 클릭했을때 마우스위치

  MousePosition1:= Platform.GetMousePos;

.....

.....

End;

 

Procedure MouseMove(.........)

VAR

  ImagePositionX1, ImagePositionY1 : Single; 

  ImagePositionX2, ImagePositionY2 : Single;

Begin

 

// 드레그하여 이동한 새로운 마우스 위치 

MousePosition2:= Platform.GetMousePos;

 

// 현제 이미지의 위치

  ImagePositionX1 := Image3D1.Position.X; 

  ImagePositionY1 := Image3D1.Position.Y;

  ......

//  Image3D1의 새로운 좌요인 ImagePositionX2와 ImagePositionY2를 계산.

  ImagePositionX2 := .....

  ImagePositionY2 :=

  .....

// 이미지 위치이동

  Image3D1.Position.X := ImagePositionX2; 

  Image3D1.Position.Y := ImagePositionY2;

End

 

대충 이런식으로 코딩해야 할 것 같은데

문제는 TPointF형에 담겨있는 마우스 포지션과 T3Image3D의 좌표계가 달라

마우스를 이동했을때 이미지의 새로운 위치를 어떻게 계산해야 하는가 입니다.

 

도움을 주시면 감사하겠습니다.