计算几何 —— 二维几何基础 —— 三角形的面积
生活随笔
收集整理的這篇文章主要介紹了
计算几何 —— 二维几何基础 —— 三角形的面积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【海倫公式】
在平面內,有一個三角形,設其三邊長分別為 a、b、c,面積為 S ,則有:?
其中,
double calculate(double a,double b,double c){double p=(a+b+c)/2;return sqrt( p*(p-a)*(p-b)*(p-c) ); }【通過叉積】
對于按逆時針轉的三個點 A(x1,y1),B(x2,y2),C(x3,y3),設三角形面積為 S,則有:
即有:
由于三個點的順序是按照逆時針排列的,而在行列式中,交換任意兩行或兩列只需要在行列式前面取負一次即可,由于三角形的面積不可能是負值,因此對于任取的三個點,若想求其組成的三角形面積,只需要在上述公式前取絕對值即可
即給出任意三點的坐標,其組成的三角形的面積為:
pair<int,int> node[N]; double calculate(int i,int j,int k){int x1=node[i].first,y1=node[i].second;int x2=node[j].first,y2=node[j].second;int x3=node[k].first,y3=node[k].second;int temp=abs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);return (double)temp/2; }?
總結
以上是生活随笔為你收集整理的计算几何 —— 二维几何基础 —— 三角形的面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Build String(CF-237E
- 下一篇: 基础算法 —— 调度问题 —— 多机并行