前提提要:向量叉積以後改用 ^ 符號,過載運算子後發現表示更清晰。
friend double operator ^ (point a,point b)
1.解析幾何法:由眾多三角形的面積公式得出的結果:
2.向量叉積法:任意兩邊向量的叉積的絕對值的1/2即為三角形的面積。
code:
double ********area(v l1,v l2)
現在討論簡單多邊形,不考慮自交多邊形,計算時採用剖分思想,將其轉化為求多個三角形面積的子問題集合。
有三種轉化方法:
1.將多邊形內的一點與多邊形頂點連線,可將多邊形劃分成多個三角形,分別求出每個三角形的面積,累加起來即為多邊形的面積。
2.採用三角剖分的方法,取多邊形的乙個頂點作為剖分出的三角形頂點,三角形的其他點作為多邊形上相鄰的點,
由於叉乘有正有負,所以正好可以抵消掉多餘的面積部分。面積的計算公式為:
計算得到的面積都一樣。
code:
//簡單多邊形面積,由n個點構成dots頂點集,按順序儲存。
double poly_area()
friend point operator + (const point &a,const point &b)
friend point operator - (const point &a,const point &b)
friend double operator ^ (point a,point b)
}dots[maxn];
struct v
friend v operator + (const v &a,const v &b)
friend v operator - (const v &a,const v &b)
}edge[maxn],stk[maxn];
double seare[maxn];
int n;
int parellel(const v &a,const v &b)
for(int i=1;i>a>>b;
if(a>b) swap(a,b);
if(a+1==b) continue;
res=seare[b-1]-seare[a-1];
res-=((dots[a]-dots[1])^(dots[b]-dots[1]))/2;
ans=max(ans,min(res,sum-res));
}cout<
4 20.5 0.5
10.5 0.5
10.5 10.5
0.5 10.5
1 34 2
*/
acm 凹多邊形面積 解析幾何 面積的計算
前提提要 向量叉積以後改用 符號,過載運算子後發現表示更清晰。friend double operator point a,point b 1.解析幾何法 由眾多三角形的面積公式得出的結果 r是三角形內切圓半徑 r是三角形外接圓半徑 其中 2.向量叉積法 任意兩邊向量的叉積的絕對值的1 2即為三角形...
解析幾何 交點的計算
這個專題討論用解析幾何的方法解決線段,直線和點的計算問題。預設使用笛卡爾直角座標系。已知線段p1p2 x1,y1 x2,y2 點q x0,y0 求點q到線段p1p2的 最近座標。存在兩種情況 1.情況一 y1 y2 x1!x2時,直線p1p2的方程為y y1,則q到p1p2的垂線方程為x x0,垂足...
Revit二開 解析幾何 計算垂直向量
在revit二次開發中我們經常會遇到求法向量的問題,如果是圓弧 橢圓 平面等幾何土元,直接可以獲取其法向量。但是當遇到直線的時候,我們想繪製模型線,則必須建立sketchplane,要建立sketchplane那麼必須有乙個平面,要有這個平面則需要乙個法向量,那麼這個法向量怎麼計算呢,有兩種方法 首...