자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey TImage3D를 마우스로 드레그하여 이동하고 싶은데요.
2012.07.20 20:56
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의 좌표계가 달라
마우스를 이동했을때 이미지의 새로운 위치를 어떻게 계산해야 하는가 입니다.
도움을 주시면 감사하겠습니다.
댓글 0
Firemonkey TImage3D를 마우스로 드레그하여 이동하고 싶은데요.
2012.07.20 20:56
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의 좌표계가 달라
마우스를 이동했을때 이미지의 새로운 위치를 어떻게 계산해야 하는가 입니다.
도움을 주시면 감사하겠습니다.