2016-10-15 3 views
1

너무 많이 확대하고 마우스를 사용하여 그림을 드래그하면 너무 빠르게 움직입니다. 마찬가지로 너무 많이 축소하면 그림이 매우 느리게 드래그됩니다.프랙탈 (웹gl)을 확대 할 때 문제가 있습니다

이는 (규모)으로 확대하고, 어떻게 주위에 (X 좌표, Y 좌표를) 사진을 드래그하는 방법이다

fPosition.x = fPosition.x * scale + xPos; 
fPosition.y = fPosition.y * scale + yPos; 

나는이 문제를 해결하려면 어떻게해야합니까?

답변

0

역 스케일로 이동을 조정해야합니다. 1에서 1로 확대 할 때 드래그 한 픽셀 당 1 픽셀 씩 확대/축소하지 않습니다.

2에서 1로 확대 할 때 1 픽셀의 크기가 2 픽셀 (2의 배율) 인 경우 동일한 화면 속도로 이미지를 드래그하여 모든 픽셀에 대해 1/scale 픽셀만큼 이동하려는 경우 당신이 끌고. 모든 픽셀에 대해 1/2 = 0.5 마우스/포인터/터치 것을 움직입니다.

0.5에서 1로 축소하면 배율이 0.5로되고 이미지는 드래그 한 모든 픽셀에 대해 1/scale 픽셀만큼 이동해야합니다. 1/0.5 = 2

규모는 픽셀의 크기이며 이동은 해당 눈금의 역입니다. 1 눈금 나누기

+0

fPosition.x = fPosition.x * 눈금 + xPos * (1/눈금); – Besta

+0

위와 같이하면 확대/축소시 실제로 위치가 변경됩니다. – Besta

+0

@Besta는 2가 아닌 하나의 위치 좌표 만 유지하고 그 위치에 추가합니다. (쉐이더에서)'fPosition = pos * scale;'그리고 자바 스크립트에서'pos + = drag * (1/scale); – Blindman67