2013-04-12 3 views
0

화살표가 X, Y 포인트로 표시되어 있으며 25도 회전하고 싶습니다. 내 화살표가 회전하지만 더 이상 보이지 않습니다. 각도는 더 이상 90 도가되지 않습니다. 포인트 :2D 좌표 회전 - 이미지 왜곡

-85.0,0.0 
-25.0,50.0 
-25.0,15.0 
85.0,15.0 
85.0,-15.0 
-25.0,-15.0 
-25.0,-50.0 
-85.0,0.0 

그러면 이미지가 that looks like this이됩니다.

여기 점을 회전 내 (PHP) 코드 :

$pts = array(
    array(-85, 0), 
    array(-25, 50), 
    array(-25, 15), 
    array(85, 15), 
    array(85, -15), 
    array(-25, -15), 
    array(-25, -50), 
    array(-85, 0), 
); 

$rotate = deg2rad(25); 
$sin = sin($rotate); 
$cos = cos($rotate); 

foreach($pts as $xy) { 
    list($x, $y) = $xy; 

    // Rotate 
    $x2 = ($x * $cos) - ($y * $sin); 
    $y2 = ($x * $sin) + ($y * $cos); 

    printf("%0.3f, %0.3f\n", $x2, $y2); 
} 

출력 :

-77.036, -35.923 
-43.789, 34.750 
-28.997, 3.029 
70.697, 49.517 
83.375, 22.328 
-16.318, -24.160 
-1.527, -55.881 
-77.036, -35.923 

얻어진 화상을 no longer looks good.

내가 수학에서 잘못하고있는 것은 무엇입니까? 나는 그것이 있어야하는 곳에 90도 구석이 아직도 있기를 바랄 것입니다.

고마워요! Seth

편집 : 나머지 실습은 점을 Google 어스에 표시하기위한 위도/경도 좌표로 변환하는 것입니다. 번역 코드 :

$x2 = ($x2 * $scale) + $latref; 
$y2 = ($y2 * $scale) + $lonref; 

내 "진짜"문제는 (조엘 -에 - 이동이 지적 @로) 위도와 경도 동일하지의도 사이의 물리적 거리인가?

답변

4

수학에 문제가 없습니다. 그래프의 X 축과 Y 좌표 축의 눈금이 같지 않습니다.

+0

Ah! 방금 정사각형 이미지로 조정 했으므로 올바른 것으로 나타났습니다. 고맙습니다! 이 작업을 수행 할 수있는 방법이 있습니까? 그래도 직사각형 화살표를 사용할 수 있습니까? – Seth

+0

무슨 뜻인지 모르겠다 ... 직사각형 화살표는 무엇인가? –

+0

요점은 이미지가 왜곡되지 않도록 X 축과 Y 축에서 크기 (픽셀 당 단위 수, 여기)가 같아야한다는 것입니다. 나는 당신의 그래프 작성 프로그램에 이것을 어떻게 할 것인지를 모른다. 나는 두렵다. –