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));
有什麼一清二楚的是,我已經錯過了?我沿逆時針方向遍歷頂點,因爲這是組織的方式。
在我提交請求後大約15分鐘就意識到了這一點!謝謝! – Schroedinger 2012-03-25 06:56:09