免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: hellozhouke
打印 上一主题 下一主题

[算法] 思考一个求任意图形面积的算法 [复制链接]

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
11 [报告]
发表于 2010-03-17 12:21 |只看该作者
本帖最后由 zhujiang73 于 2010-03-17 12:23 编辑

回复 1# hellozhouke


    求任意不规则图形面积可以数像素点数,对没公式可用的图形我都这么做。{:3_189:}

论坛徽章:
0
12 [报告]
发表于 2010-03-17 12:56 |只看该作者
只要能用公式表达出这个形状来,就可以用微积分算出它的面积。。。。

论坛徽章:
0
13 [报告]
发表于 2010-03-17 14:23 |只看该作者
如果原来是个多边形还有的玩,方法很简单,首先保证原来的多边形信息(顶点序列)是顺时针(或者逆时针,总之一致就行了)排列
然后取一个基点(比如原点)做到每个顶点的向量
将相邻的向量叉乘累加(有向面积,不要取绝对值,直接加就行了),注意最后一个向量还要和第一个进行叉乘
最后得到的和取其绝对值的1/2就是你要的多边形的面积
这个方法所有在多边形外的部分都被正负抵消了,得到的是多边形的面积
举个例子说明,比如原来多边形有五个顶点
(1,1),(2,2),(3,1),(3,3),(1,3),那么我们取原点做基点,得到的五个向量就是:(1,1),(2,2),(3,1),(3,3),(1,3)
进行相邻的叉乘(符号不好打我用*代替)
0.5*abs((1,1)*(2,2)+(2,2)*(3,1)+(3,1)*(3,3)+(3,3)*(1,3)+(1,3)*(1,1))
=0.5*abs(0+(-4)+6+6+(-2))
=3
不信你可以验算一下,一个图形是一个边长2的正方形减去自身的1/4

论坛徽章:
0
14 [报告]
发表于 2010-03-20 19:15 |只看该作者
我想这位同志数学学的太一般了,任何一个图形都可以进行划分,拿一个平面来说吧,运用积分中的划分可以求解任意图形了,如果想写出(好的)算法,但数学不好几乎没可能。这就是一个提示吧!

论坛徽章:
1
天秤座
日期:2014-04-27 07:42:20
15 [报告]
发表于 2010-03-20 22:04 |只看该作者
如果这个不规则图形时刻描述的,那么应该用数学方法求解。如果是不可描述的,二值化后数点吧

论坛徽章:
0
16 [报告]
发表于 2010-03-21 11:29 |只看该作者
任意多边形的话,可以考虑划分三角形计算

论坛徽章:
0
17 [报告]
发表于 2010-03-21 20:09 |只看该作者
任意一个图形的面积  用微积分算.....

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
18 [报告]
发表于 2010-03-21 20:13 |只看该作者
回复 17# chiyiangel


  微积分用程序写出来的话应该叫数值计算吧,也就是近似的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP