下载此文档

计算任意多边形面积的算法.doc


文档分类:IT计算机 | 页数:约2页 举报非法文档有奖
1/ 2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 2 下载此文档
文档列表 文档介绍
计算任意多边形面积的算法
方法1:
用这个方法吧:
我们都知道已知A(x1,y1)B(x2,y2)C(x3,y3)三点的面积公式为
                      |x1     x2     x3|
S(A,B,C)   =     |y1     y2     y3|   *       (当三点为逆时针时为正,顺时针则为负的)
                      |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)就可以了。
还有一个方法:
任意一个简单多边形,当它的各个顶点位于网格的结点上时,它的面积数S=b/2+c+1
其中:b代表该多边形边界上的网络结点数目
            c代表该多边形内的网络结点数目
所以把整个图形以象素为单位可以把整个图形分成若干个部分,计算该图形边界上的点b和内部的点c就得到面积数S了,然后把S乘以一个象素的面积就是所求的面积了。
多边形面积的计算公式如下:设有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]。该公式用于凸凹多边形均可。
方法2:
int   CImageViewView::GetRgnArea()
{
int   area   =   0;
int   i,j;
CRect   rect;
CPoint*   m_points;
int m_nPoints;
CImageViewDoc*   pDoc   =   GetDocument();
m_nPoints   =   pDoc->();
m_points   =   new   CPoint[m_nPoints];
for(i   =   0;   i<m_nPoints   ;   i++) /

计算任意多边形面积的算法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 2
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 n22x33
  • 文件大小 0 KB
  • 时间2012-09-15
最近更新