乙個初中生問題:求任意凸多邊形的交叉面積
類似的幾種情況:
第一種0:兩個多邊形無交叉,沒有相交多邊形,且一方在另一方沒有內點,相交面積為0。
第二種1:兩個多邊形無交叉,且一方在另一方有內點。稱之為包含。
第三種2:兩個多邊形有交叉,有相交多邊形,且一方在另一方有內點。
第四種3:兩個多邊形有交叉,有相交多邊形,且兩方在另一方有內點。
第五種4:兩個多邊形有交叉,有相交多邊形,且無內點。
第六種5:奇異情況,重合。
總結:可以看出,多邊形相交的面積,即是 所有交點和內點組成的多邊形連成的面積。
問題:是不是遺漏了其他情況?
演算法描述:
1. 判斷兩個多邊形是否相交1.1 遍歷乙個多邊形的所有邊,判斷是否與另乙個多邊形相交
1.2 找出所有的交點
2.判斷乙個多邊形在另一多邊形內是否有內點
2.1 遍歷乙個多邊形的所有點,判斷是否為另乙個多邊形內點
2.23. 根據內點情況和交叉點情況,判斷相交情況
3.1 收集所有內點和交點,
3.2 計算質心,計算點到質心的角度
3.3 根據角度排序,連成凸多邊形
3.4 從一點開始,劃分多個三角形
3.5 計算多個三角形的面積,累加:
三角形面積計算公式:
double p = (a + b + c) / 2;4.返回面積累加和double s2 = p * (p - a) * (p - b) * (p - c);
求任意多邊形面積(凹多邊形和凸多邊形)
遇到問題 已知多邊形的各個左邊點,要求多邊形的面積 然後我搜尋了下看到這篇文章 這個人說的不多,但是簡單明瞭 首先已知各定點的座標分別為 x1,y1 x2,y2 x3,y3 xn,yn 則該多邊形的面積公式為 s 1 2 x1 y2 x2 y1 x2 y3 x3 y2 xk yk 1 xk 1 yk...
求任意多邊形的面積
輸入乙個點列,順序連線成乙個封閉多邊形,計算多邊形的面積。思路 求多邊形的面積可以使用叉乘求面積。設多邊形有n個頂點,用陣列將其存起來,其餘各點均與第乙個點連起來,這樣從逆時針方向來看,每兩個點構成乙個三角形,在使用叉乘來求的面積。有一點需要明確一下,每一次使用叉乘求面積,不能加絕對值,因為每一步叉...
求任意多邊形面積與重心的演算法
題目位址 多邊形重心問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 ...