2012-03-25 2 views
0

숙제 문제입니다.하지만 잠시 동안 몸을 풀고 100 % 정확한 답을 얻을 수 없었습니다. 주어진 다각형, 나는 그 다각형 내의 임의의 정점의 내부 각도를 찾아야합니다. 내가 한 일은 꼭지점과 그 꼭지점을 취한 다음 입사각을 계산하는 것입니다. (즉, 꼭지점을 B로 취급한다고 가정합니다.) 가장자리 AB와 BC를 만들고, 각각의 크기를 찾은 다음 나눕니다. 그 둘의 내적은 각각의 크기로 나타냅니다.볼록 다각형의 벡터 교차 지점 찾기

저는 특히 벡터 (0,10), (0,0), (10,0)이있는 인스턴스에서 아직 작동하지 않습니다. 분명히 중간 벡터의 내각은 90도이지만 크기와 도트 곱을 사용하여 계산할 때 이상한 이유로 45 도가됩니다. 여기

double dx21 = one.x - two.x; 
     double dx31 = one.x - three.x; 
     double dy21 = one.y - two.y; 
     double dy31 = one.y - three.y; 
     double m12 = Math.sqrt(dx21*dx21 + dy21*dy21); 
     double m13 = Math.sqrt(dx31*dx31 + dy31*dy31); 
     double theta = Math.acos((dx21*dx31 + dy21*dy31)/ (m12 * m13)); 
     System.out.println(theta); 
     System.out.println(Math.toDegrees(theta)); 

내가 놓친 것을 눈부시게 분명 있나요 내 코드? 꼭지점을 반 시계 방향으로 가로 질러 가고 있는데, 그것이 세트가 어떻게 구성되어 있는지입니다.

답변

2

코드에서 포인트 '1'을 중심점으로 사용하고 있으며 그 다음 '2'와 '3'사이의 각도를 계산합니다. 그래서 vertex (0,0), (0,10), (10,0)을 넣으면 90 도의 각도를 얻을 수 있습니다. 실제 계산은 훌륭하고 작동합니다. 정점 순서를 엉망으로 만듭니다. 쪽으로.

+0

요청을 제출 한 후 약 15 분 만에 실현되었습니다! 감사! – Schroedinger