社区
图形处理/算法
帖子详情
求教:给出封闭图形的坐标,计算其面积的算法
szbw
2002-09-15 09:33:08
给出封闭图形的一组坐标,如何计算该封闭图形的面积?
...全文
425
16
打赏
收藏
求教:给出封闭图形的坐标,计算其面积的算法
给出封闭图形的一组坐标,如何计算该封闭图形的面积?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
opentuxedo
2002-09-20
打赏
举报
回复
其实这个办法还是不正规,正规的办法是:
1先找到任意一个顶点
用这个顶点和每一条对边相连,生成一系列的三角形,
计算每个三角形的代数面积,然后相加
三角形的代数面积可以用向量叉乘的办法得到。叉积的一半就是三角形面积。
计算叉积的方法是:
|i j k|
|x1 y1 z1|
|x2 y2 z2|
其中x1=x[n]-x[0];y1=y[n]-y[0];x2=x[n+1]-x[0];y2=y[n+1]-y[0];
szbw
2002-09-20
打赏
举报
回复
经过与ctl2008(ctl)的几次讨论,对于一个边界不交叉的封闭多边形面积算法基本成型:
1、计算多边形每条与x轴所形成梯形的矢量面积
2、将所有矢量面积相加,得出多边形面积
矢量面积的原则是:当x(i-1)>=x(i)时,y(i-1)-y(i),当x(i-1)<x(i)时,y(i)-y(i-1),或者完全反过来,这样才能利用矢量面积来消除重叠的部分。
存在问题:
1、如果多边形边界存在交叉,如“8”字形,则该算法无法正确计算
2、如果是一个多个封闭多边形组成的形状(内部被另一个多边形掏空),如古钱币的形状,则无法计算。这应该是另外一类问题。
致谢:
ctl2008(ctl)
opentuxedo(开缝的燕尾服)
szbw (bw@4u.net)
szbw
2002-09-20
打赏
举报
回复
经过与ctl2008(ctl)的几次讨论,对于一个边界不交叉的封闭多边形面积算法基本成型:
1、计算多边形每条与x轴所形成梯形的矢量面积
2、将所有矢量面积相加,得出多边形面积
矢量面积的原则是:当x(i-1)>=x(i)时,y(i-1)-y(i),当x(i-1)<x(i)时,y(i)-y(i-1),或者完全反过来,这样才能利用矢量面积来消除重叠的部分。
存在问题:
1、如果多边形边界存在交叉,如“8”字形,则该算法无法正确计算
2、如果是一个多个封闭多边形组成的形状(内部被另一个多边形掏空),如古钱币的形状,则无法计算。这应该是另外一类问题。
致谢:
ctl2008(ctl)
opentuxedo(开缝的燕尾服)
ctl2008
2002-09-17
打赏
举报
回复
如果仅仅是求多边形的面积,就用opentuxedo(开缝的燕尾服)所说的方法最单不过,只算一下每条边与X轴(或Y)的梯形面积,再减去重叠部分就行了,谈不上用什么高等数学、微积分。若要代码与我联系。c1934@21cn.com
szbw
2002-09-17
打赏
举报
回复
splitter(小刚)的算法我们想过,问题是我们只有(拐)点坐标,相邻拐点之间的边界点坐标还得算出来,巨烦!有没有更简单的方法?
又:楼上的邮箱wujianghua658@sohu.com退信了。如果真能解决问题,请再给一次邮箱地址。
wuamy
2002-09-16
打赏
举报
回复
请问是求多边形的面积还是其它图形的面积,
若求多边形面积,请同我联系
wujianghua658@sohu.com
harry202
2002-09-16
打赏
举报
回复
切分为水平或者垂直矩形好一些,windows系统的区域函数内部实现就是这样计算的。
splitter
2002-09-16
打赏
举报
回复
构造一个包含你多边形的二维栅格平面,对多边形每个边作离散化。离散化
后所占的栅格标志为1,其余为0。然后做填充算法,将这个多边形内全部填充
为1。最后可以得到标志为1的个数。这样就可以大致计算出它的面积。
关于离散化和填充算法,可以参考计算机图形学和数字图像处理。
szbw
2002-09-16
打赏
举报
回复
我想这应该不是一个需要研究的问题,肯定有一些成熟的算法。前面有一个《判断一个点,是否在一个多边形内(平面),有没有方法,有重谢》的贴子解决了一些问题,现在问题是给出的只有边界拐点的坐标,如何确定一个边界点相邻的另外两个点,以及构建完整的边界坐标系。
这个问题不是简单的所谓的高等数学问题、微积分问题,还请各位高手指教!
petpetg
2002-09-15
打赏
举报
回复
高等数学可以帮倒你.Have a look 吧!
沙老师
2002-09-15
打赏
举报
回复
to opentuxedo(开缝的燕尾服) :
好办法!
stonespace
2002-09-15
打赏
举报
回复
可以切分成三角形分别计算,也可以用积分直接计算。
opentuxedo
2002-09-15
打赏
举报
回复
还有一个办法是向量点乘。
opentuxedo
2002-09-15
打赏
举报
回复
求每条边和轴所夹的代数面积(根据边和向量方向来定义符号的面积值)然后把这些代数面积相加。
bch515
2002-09-15
打赏
举报
回复
用微积分,如果真的不行,那就用尺子量吧!
nuaazwg
2002-09-15
打赏
举报
回复
需确定一下精度吧。
数据处理救星降世Power Query
0/ Excel数据处理新利器来了,准备好了吗?1/ 比网红函数VLOOKUP还全面的功能。——查(查询)2/ 取其精华,去其糟粕。——筛(筛选)3/ 拆分就像同学会,拆散一对是一对。——拆(拆分)4/ 天下大势,合久必分,分久必合。——合(合并)5/ 隔空取物,犹如探囊取物——提(提取)6/ 百转千回后的峰回路转。——转(转换)7/ 它判断真假的唯一标准。——判(判断)8/ 人以群分,物以类聚。——聚(聚合)9/ 我自己的难题自己造函数,不
求教
别人。——技法(自定义函数)
Java
图形
面积
计算
,大学新人才接触编程,向各位长辈
求教
实验四-
图形
面积
计算
(多态,数组) 1、编写Shape类(接口),有一个抽象方法getArea() 2、编写一个Circle类,生成对象时,实现参数赋值,覆写getArea方法;编写Rect类(矩形),生成对象时,实现参数赋值,覆写...
一维下料 php,
求教
:一维下料
算法
该楼层疑似违规已被系统折叠隐藏此楼查看此楼//坯料长度var arrTypeLength=new Array(1500,2000,3000);var arrTypeLength1=new Array(1500,2000,3000);//坯料需要的数量var arrTypeNum=new Array(10,11,15);...
求教
:散点集合的外界凸多边形,
算法
寻找散点集合的外界凸多边形的
算法
,求赐教
求教
: 关于isin函数
求教
: 关于isin函数)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左...
图形处理/算法
19,469
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章