多邊形面積 Area Of Polygons

2022-03-04 21:59:49 字數 2478 閱讀 6511

原理:

任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形向量面積求和得出。

分析: 

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

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

另外,△pab△pab的向量面積即為

且多邊形面積為:

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

例題:題解:計算幾何裸題

#include #include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//#define debug

#define ri register int

using

namespace

std;

typedef

long

long

ll;//

typedef __int128 lll;

const

int n=100000+10

;const

int mod=1e9+7

;const

double pi = acos(-1.0

);const

double exp = 1e-8

;const

int inf = 0x3f3f3f3f

;int

t,n,m,k,q;

double

ans;

struct

nodee[n];

double

a[n];

char

str;

intmain()

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

double sum=fabs(a[n]/2

);

//cout

s,t;

while(q--)

printf(

"%.6f

",ans);

//cout << "hello world!" << endl;

return0;

}

view code

c++版本二

題解:計算幾何

只要叉積維護一下字首和就好了。

#include #include 

#include

#include

#include

using

namespace

std;

#define mst(a,b) memset((a),(b),sizeof(a))

#define rush() int t;scanf("%d",&t);while(t--)typedef

long

long

ll;const

int maxn = 200005

;const ll inf =1e18;

const ll mod=1e9+7

;const

double eps = 1e-9;

intn,m;

struct

node

a[maxn];

double

sum[maxn];

double

cross(node a,node b,node c)

intmain()

node zero;

zero.x=0

; zero.y=0

;

for(int i=1;i<=n;i++)

for(int i=n+1;i<=2*n;i++)

double sum=fabs(sum[n])/2.0

;

double cnt=0

;

for(int i=0;i)

printf(

"%.15f\n

",cnt);

}

view code

多邊形面積

點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...

多邊形求面積,

這個程式很值得一博。昨天一位學地質的高中同學問我寫個程式求多邊形面積,因為他說看到excel就煩。正好前段時間在csdn上看到乙個帖子求多邊形面積,也想到了乙個演算法,於是寫了這個程式。演算法描述 乙個多邊形的面積可以由這樣兩個系列的梯形來計算,以凸多邊形舉例,在圖形上方的一系列邊和其在x軸的投影組...

10 4 多邊形面積

10.4 多邊形面積 源程式名 area.pas,c,cpp 可執行檔名 area.exe 輸入檔名 area.in 輸出檔名 area.out 問題描述 給出乙個簡單多邊形 沒有缺口 它的邊要麼是垂直的,要麼是水平的。要求計算多邊形的面積。多邊形被放置在乙個x y的卡笛爾平面上,它所有的邊都平行於...