第一种方法(笨,但简单) 问题可以这样解决(只针对凸多形与凹多边形) 我可以把它们划分了多个三角形,计算每一个三角形的面积。再加起来
首先我如一个任意四边形为例四个点为,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-2-16 17:11:51编辑过]