码迷,mamicode.com
首页 > 其他好文 > 详细

计算闭合区域面积

时间:2017-08-04 19:39:22      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:ble   for   last   logs   select   one   first   double   poi   

     /// <summary>
        /// 计算闭合区域面积
        /// </summary>
        /// <param name="X"></param>
        /// <param name="Y"></param>
        /// <param name="numPoints"></param>
        /// <returns></returns>
        double polygonArea(List<double> X, List<double> Y, int numPoints)
        {
            double area = 0;         // Accumulates area in the loop
            int j = numPoints - 1;  // The last vertex is the ‘previous‘ one to the first

            for (int i = 0; i < numPoints; i++)
            {
                area = area + (X[j] + X[i]) * (Y[j] - Y[i]);
                j = i;  //j is previous vertex to i
            }
            return area / 2;
        }

来自

http://www.mathopenref.com/coordpolygonarea2.html

 

lstPt 是按顺序的顶点坐标

           var X = lstPt.Select(p => p.X).ToList();
            var Y = lstPt.Select(p => p.Y).ToList();
            double area= polygonArea(X, Y, lstPt.Count);

 

计算闭合区域面积

标签:ble   for   last   logs   select   one   first   double   poi   

原文地址:http://www.cnblogs.com/china-guoch/p/7286596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!