谁作过计算多边形(凸凹)面积的(我有一批数据,其实是离散点作出的等值点,计算环形面积)

jmylf 2001-06-13 12:42:00
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arter 2001-06-25
  • 打赏
  • 举报
回复
1.把(xi,yi)按逆时针排好。(i=1,2,3,....n, x(n+1)=x1);
2.计算它的有向面积:
(1)先看:(0,0),(xj,yj),(xk,yk)三点的面积S=
| 0 0 1 |
| xj yj 1 |*(1/2) =(xj*yk-yj*xk)/2
| xk yk 1 |
(2)多边形面积可以划分为三角形面积的和:
S[(0,0),(x1,y1),(x2,y2)]+S[(0,0),(x2,y2),(x3,y3)]+...
+ S[(0,0),(x(n-1),y(n-1),(xn,yn)]+S[(0,0),(xn,yn),(x1,y1)]
=((x1*y2-x2*y1)+(x2*y3-x3*y2)+...+(x(n-1)*yn-xn*y(n-1))+(xn*y1-x1*yn))/2
=(x1*(y2-yn)+x2*(y3-y1)+x3*(y4-y2)+...+x(n-1)*(yn-y(n-2))+xn*(y1-y(n-1)))/2
(或:(y1*(xn-x2)+y2*(x1-x3)+y3*(x2-x4)+...+y(n-1)*(x(n-2)-xn)+yn*(x(n-1)-
x1))/2 )






qiaoyu2k 2001-06-19
  • 打赏
  • 举报
回复
来晚了
jmylf 2001-06-19
  • 打赏
  • 举报
回复
这分得的不错吧
starfish 2001-06-13
  • 打赏
  • 举报
回复

// 计算多边形的面积
// 要求按照逆时针方向输入多边形顶点
// 可以是凸多边形或凹多边形

float area_of_polygon(int vcount,float x[],float y[])
{
int i;
float s;
if (vcount<3) return 0;
s=y[0]*(x[vcount-1]-x[1]);
for (i=1;i<vcount;i++)
s+=y[i]*(x[(i-1)]-x[(i+1)%vcount]);
return s/2;
}

starfish 2001-06-13
  • 打赏
  • 举报
回复
设n个点(x[1],y[1])(x[2],y[2]),...(x[n],y[n])围成一个没有边相交的多边形,则其未成的闭合多边形面积|S| 为:

S=∑y[i] *(x[i+1]-x[i-1]), 其中i=1,2,...n, 且当i与j除以n的余数相同的时候, x[i]=x[j],y[i]=y[j]

这个公式在任何一本数学公式手册上都有(不过给出的是行列式的表达形式)。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧