2010-03-26 12 views
2

무작위 경로를 그리는 XNA의 응용 프로그램에서 개발 중입니다. 불행히도, 나는 그래프 작업에 익숙하지 않아 조금 붙어 있습니다. 내 응용 프로그램은 다음을 수행해야합니다.각도로 좌표 찾기

  1. 단순한 내 원점 (0,0)에서 임의의 각도를 지정하십시오.
  2. 위의 각도로 원점을 기준으로 16px (또는 내가 지정한 거리)와 원을 그립니다.

는 (내 끔찍한 photoshoping 실례)

alt text http://www.refuctored.com/coor.png

(16, 16) 상기 제 2 원 16 개 화소 떨어진 제 원점에서 45도 각도를 나타내는 것이다.

거리와 각도를 그래프로 전달하는 방법을 사용하고 싶습니다. 즉

private Point GetCoordinate(float angle, int distance) 
{ 
    // Do something. 
    return new Point(x,y); 
} 

나는 이것이 간단하다는 것을 알고 있지만, agian, 나는 그래프를 만지는 것이 아닙니다. 어떤 도움이 필요합니까? 각도가도에있는 경우

감사합니다, 조지

답변

5

이 먼저 수행

angle *= Math.PI/180; 
다음

: 그런데

return new Point(distance * Math.Cos(angle), distance * Math.Sin(angle)); 

, 지점 (16, 16) 원점에서 16 픽셀 떨어져 있지 않지만 sqrt (16^2 + 16^2) = sqrt (512) = ~ 22.63 픽셀입니다. 일반

0

:

D는 원점으로부터의 거리 및 세타 각이다
x = d * cos(theta) 
y = d * sin(theta) 

.

1
private Point GetCoordinate(float angle, int distance) 
{ 
    float x = cos(angle) * distance; 
    float y = sin(angle) * distance; 
    return new Point(x, y); 
} 

삼각 함수는 아마도 라디안을 취합니다. 각도가도 단위 인 경우 180/Pi로 나눕니다.