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指出),緯度和經度不等於之間的距離是多少?
啊!我只是調整它,所以它是一個方形圖像,它出來正確!謝謝!有沒有辦法做到這一點,所以我仍然可以有一個矩形箭頭? – Seth
我不確定你的意思...什麼是矩形箭頭? –
問題是,對於不會失真的圖像,X軸和Y軸上的比例(此處爲每像素單位)必須相同。我害怕,我不知道如何告訴你的圖形程序來做這件事。 –