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;
내 "진짜"문제는 (조엘 -에 - 이동이 지적 @로) 위도와 경도 동일하지의도 사이의 물리적 거리인가?
Ah! 방금 정사각형 이미지로 조정 했으므로 올바른 것으로 나타났습니다. 고맙습니다! 이 작업을 수행 할 수있는 방법이 있습니까? 그래도 직사각형 화살표를 사용할 수 있습니까? – Seth
무슨 뜻인지 모르겠다 ... 직사각형 화살표는 무엇인가? –
요점은 이미지가 왜곡되지 않도록 X 축과 Y 축에서 크기 (픽셀 당 단위 수, 여기)가 같아야한다는 것입니다. 나는 당신의 그래프 작성 프로그램에 이것을 어떻게 할 것인지를 모른다. 나는 두렵다. –