小X的多邊形

2021-08-20 10:41:45 字數 1065 閱讀 8720

眾所周知的是,小x特別喜歡由線條組成的形狀,比如說凸多邊形,這一天小x正在紙上畫著喜歡的凸多邊形,這時候小y走了過來,指著一張上的多邊形,問小x知道這個圖形的面積麼,這可把小x難住了,聰明的你一定能夠幫助小x解決這個問題,對吧~

多邊形上最多有六個點,順時針or逆時針給定每個點座標(兩個整數表示),保證無多餘的點並且沒有點重複。
輸出乙個整數,表示凸多邊形的面積,結果四捨五入。
示例1

複製

3

0 01 0

2 2

複製

1
示例2

複製

5

-4 -2

1 -3

3 2-1 4

-4 2

複製

35
由於給出的點是相對於我們的座標原點的座標,每個點實際上我們可以當作乙個頂點相對於原點的向量,如下圖所示:

p(0,0)對應的頂點向量分別為:a(x0,y0),b(x1,y1),…,g(x6,y6)

另外,△pa

b的向量面積即為s⃗ 

△pab

=12∗

pa→∗

pb→=

12∗(

xayb

−xby

a)且多邊形面積為:s總

=∑k=

1ns⃗ 

△pxy

=12∗

∑k=0

n(xk

yk+1

−xk+

1yk)

根據上述公式可以直接求出多邊形的**從而避免了邊長的複雜計算。

#include #include #include using namespace std;

int main()

sum += (x*y0-y*x0);

printf("%d\n",int(abs(sum)/2+0.5));

}return 0;

}

求任意多邊形面積(凹多邊形和凸多邊形)

遇到問題 已知多邊形的各個左邊點,要求多邊形的面積 然後我搜尋了下看到這篇文章 這個人說的不多,但是簡單明瞭 首先已知各定點的座標分別為 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...

多邊形與多邊形 位置關係的判斷

c 判斷點的位置方法一 public intisleft point p0,point p1,point p2 private boolpointinfences point pnt1,point fencepnts else if wn 0 return false else return tru...

驗證多邊形是否為凸多邊形

驗證多邊形是否為凸多邊形 2108 shape of hdu include define debug 0 int crossmulti int x0,int y0,int x1,int y1,int x2,int y2 int main int n,i int f x,f y 第1個點 int s...