2013-04-12 61 views
0

我有一個箭頭,表示爲X,Y點,我想旋轉25度。我的箭頭旋轉,但它不再看起來不錯。角度不應超過90度。要點:二維座標旋轉 - 圖像失真

-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; 

是我的「真實」的問題(如@喬爾 - 在-GO指出),緯度和經度不等於之間的距離是多少?

回答

4

你的數學沒有錯 - 圖中X和Y座標軸上的刻度不一樣:)

+0

啊!我只是調整它,所以它是一個方形圖像,它出來正確!謝謝!有沒有辦法做到這一點,所以我仍然可以有一個矩形箭頭? – Seth

+0

我不確定你的意思...什麼是矩形箭頭? –

+0

問題是,對於不會失真的圖像,X軸和Y軸上的比例(此處爲每像素單位)必須相同。我害怕,我不知道如何告訴你的圖形程序來做這件事。 –