| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2691 人关注过本帖
标题:求助!!!高手帮忙,如何求任意多边形面积在先等!!!谢谢了!!!
只看楼主 加入收藏
zephyr
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-2-16
收藏
 问题点数:0 回复次数:7 
求助!!!高手帮忙,如何求任意多边形面积在先等!!!谢谢了!!!
搜索更多相关主题的帖子: 多边形 面积 
2005-02-16 10:46
zero_one
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-2-12
收藏
得分:0 
用高等数学中的积分.我几年没有看过了都记不得了.
这个是大学教材里的

---------------------------------------------- 我郁闷,因为学得差劲。
2005-02-16 15:11
zero_one
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-2-12
收藏
得分:0 

第一种方法(笨,但简单) 问题可以这样解决(只针对凸多形与凹多边形) 我可以把它们划分了多个三角形,计算每一个三角形的面积。再加起来

首先我如一个任意四边形为例四个点为,a(x1,y1),b(x2,y2),c(x3,y3),b(x4,y4) 还有一个在这个四边形内的任意一点p(p1,p2) 这样的话,我可以划分为四个三角形来计算它 现在是问题的关键是求三角形的面积。我们分两步。 第一,我们平时只知道三角形的面积公式是底*高/2,但是还有一个公式是 s=(L+M+N)/2 面积=sqrt(s*(s-L)*(s-M)*(s-N)) 其中L,M,N分别为三角形的三边长度

第二,两点间距离公式(以点a,p这条边为例)

Len=sqrt((p1-x1)*(p1-x1)+(p2-y1)*(p2-y1))

现在我们知道了三角形的面积公式与两点距离公式。问题就基本搞定了 我们为求点a,b,p围成的三角形的面积,我们以len1(a,b点边),len2(a,p点边),len3(b,p点边)为这个三角形的三边 len1=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) len2=sqrt((p1-x1)*(p1-x1)+(p2-y1)*(p2-y1)) len3=sqrt((p1-x2)*(p1-x2)+(p2-y2)*(p2-y2)) 三边求出来了现在来这三个点围成的面积 s=(len1+len2+len3)/2 面积=sqrt(s*(s-len1)*(s-len2)*(s-len3)) 搞定。 这是一种思路,如果随便一个多边形,你就用动态数组(redmin)然后用循环进行篇利(打错字了,我忘了)所有 情况


---------------------------------------------- 我郁闷,因为学得差劲。
2005-02-16 17:06
zero_one
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-2-12
收藏
得分:0 
第二方法(简单,但我不会,网上找的) 我们都知道已知A(x1,y1)B(x2,y2)C(x3,y3)三点的面积公式为 |x1 x2 x3| S(A,B,C) = |y1 y2 y3| * 0.5 |1 1 1 | (当三点为逆时针时为正,顺时针则为负的)(我的不知道是不是不是线性代数里的矩阵所以我不会,矩阵我忘了怎么求的了) 对多边形A1A2A3、、、An(顺或逆时针都可以),设平面上有任意的一点P,则有: S(A1,A2,A3,、、、,An) = abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1)) P是可以取任意的一点,用(0,0)就可以了。 这种方法对凸和凹多边形都适用。

[此贴子已经被作者于2005-2-16 17:11:51编辑过]


---------------------------------------------- 我郁闷,因为学得差劲。
2005-02-16 17:08
zephyr
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-2-16
收藏
得分:0 
问题是我是初学者,动态数组还不懂,另外凹多边形你这个方法不行,首先你的内点怎么取?其次,内点找到之后,有可能形成与顶点的连线跑道图形外边去了,那样的话求得面积就多了。
2005-02-17 08:26
zero_one
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-2-12
收藏
得分:0 
那你就用第二种方法了,可是我就不会了

---------------------------------------------- 我郁闷,因为学得差劲。
2005-02-17 10:39
zephyr
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-2-16
收藏
得分:0 
感谢楼上的 我用第二种方法 果然不错!!!
感动种!!!
2005-02-17 16:49
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
得分:0 
sqr 是求平方根的  sqrt 也是求平方根的吗?
第二种方法的 p 点是任意点吗 ? 不要求是图形内的点?
看公式像是矩阵 ,可惜以前就没学好 , 后悔啊,书到用时方恨少

爱生活,爱编程。
2005-02-20 18:26
快速回复:求助!!!高手帮忙,如何求任意多边形面积在先等!!!谢谢了!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037163 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved