嘿,這是一個我正在努力的家庭作業難題,我的觸發不太強烈,所以忍受着我。計算多邊形頂點處的外角
我有一個三個頂點的列表,我已經想出瞭如何計算它們相遇處的內角(我使用它來測試以確定它們有一個有效的角度,所以多邊形是一個有效的多邊形)。
目前我挖出三個頂點一排,然後計算邊我想對角頂點,然後在該點得到矢量產品的ACOS:
double dx21 = one.x - two.x;
double dx31 = three.x - two.x;
double dy21 = one.y - two.y;
double dy31 = three.y - two.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));
我名義上知道我可以通過從360度減去內角獲得外角,但這是一個完整性檢查,以確保多邊形是有效的(頂點按逆時針順序)。
我給出的說明是爲了確保矢量產品在頂點處的正確性,但是我一直在紙上玩這個遊戲一段時間,並且沒有任何運氣讓它起作用。
我知道這主要是一個數學問題,但任何建議都會非常有用。
請記住這些都是以逆時針順序組織的二維向量。 – Schroedinger 2012-04-01 23:56:46