당신은도 각도를 결정하기 위해 다음과 같은 기능을 사용할 수 있습니다
public static function polarAngle(point:Point, center:Point=null):Number
{
if (!center)
center = new Point(0, 0);
var degrees:Number = Geometry.rad2deg(Math.atan2(point.y - center.y, point.x - center.x));
if (degrees < 0)
degrees += 360;
return degrees;
}
이 기능을 사용 point
는 캐릭터의 등록 포인트 또는 센터입니다 center
에 비해 마우스의 지점입니다.
그래서,이 같은 호출 할 수 있습니다
var angle:Number = polarAngle(new Point(mouseX, mouseY),
new Point(character.x, character.y));
나는 플래시가 기본 좌표계 사용하는 것이 좋습니다
- 시계 방향으로 회전을 나타내고 0 ~ 180의 값을; 0에서 -180 사이의 값은 반 시계 방향 회전을 나타냅니다. 한 기수 방향 시스템이 변환 당
, 예컨대 내적을 사용하는 것과 아마도 우아한 알고리즘있다; 그러나, 당신은 짐승 수 있습니다 :
if ((angle < 22.5) || (angle > 337.5))
return "e";
if (angle < 67.5)
return "se";
if (angle < 112.5)
return "s";
if (angle < 157.5)
return "sw";
if (angle < 202.5)
return "w";
if (angle < 247.5)
return "nw";
if (angle < 292.5)
return "n";
if (angle < 337.5)
return "ne";
좋아요. 내게 맞는 것을주는 각도를 가지고 있다고 생각해. 배열에서 가장 가까운 숫자를 얻을 수있는 방법을 제안 할 수 있을까? 각 각도 방향 (NE, SE, N, E, S, W .. 등)이있는 각 문자 방향 배열이 있습니다. – Daniel
큰 질문입니다. 추기경에 대한보다 우아한 접근 방법을 생각해 보겠습니다. –