2012-12-16 1 views
-2

JAVA 그릴 정다각형

내가 그것은`는 기본적으로 모든 다각형 점 라인에 위치한다는 사실을 다루는 것 같아요 육각 등 삼각형, 사각형, 오각형, 같은 일반 다각형을 그립니다 원의

Polygon 객체의 N 포인트를 계산하는 알고리즘은 무엇입니까? 일반 폴리곤을 그린 후에 첫 번째 폴리곤을 기준으로 다른 일반 폴리곤을 그려야하지만 K도 회전됩니다.

+0

그려지는 폴리곤은 무엇입니까? java.awt.Image? JComponent인가? 질문을 더 명확하게하십시오. – Aaron

+0

포인트를 계산하기위한 알고리즘을 요구하는 경우 웹을 검색하여 쉽게 찾을 수 있습니다. StackOverflow에서 적어도 두 가지 질문을 받아 들일 수 있습니다. 물론 Java2D를 사용하여 폴리곤과 드로잉을 회전하는 것은 추가 질문입니다. –

+0

자바 애플릿을 사용하고 있습니다. – werd

답변

1

사용 죄 COS :

double theta = 2 * Math.PI/sides; 
for (int i = 0; i < sides; ++i) { 
    double x = Math.cos(theta * i); 
    double y = Math.sin(theta * i); 
    // etc... 
} 

회전 단지 각도에 일정한 오프셋, 즉 theta * i + offset 추가. N -vertex 다각형

0

죄, COS, 반경,면의 2 * PI/번호 루프

1

정점은 K는 0 내지 N-1 포괄적로 진행 각도

(2*Math.PI*K)/N 

에 위치한다. 수직 좌표는 각도의 사인과 외접원의 반지름을 곱하여 계산할 수 있습니다. 수평 좌표는 각도의 코사인을 반경에 곱해야한다는 점을 제외하면 같은 방식으로 계산됩니다.

(2*Math.PI*K)/N + Xrad 

마지막으로, 화면의 원점에 있기 때문에 : 주문과 같이, X도하여 다각형을 설정 라디안 X을 변환하고 수식에 각도에 결과를 추가하려면

모서리 중 하나 인 경우 다각형의 일부만 보입니다. 이를 방지하려면 계산 한 각 좌표에 외곽 중심의 위치와 동일한 간격 띄우기를 추가하십시오.

관련 문제