网站安全事件应急处置机制建设,深圳市甘泉建设监理有限公司网站,如何去除wordpress,地板网站源码任意多边形的面积计算_拾忆楓灵的博客-CSDN博客blog.csdn.net计算任意多边形的面积 - tenos - 博客园www.cnblogs.com完美解决计算3D空间任意多边形面积_Studiouss的博客-CSDN博客blog.csdn.net求多边形面积公式#xff08;已知顶点坐标#xff09;_扬帆起航-CSDN博客…任意多边形的面积计算_拾忆楓灵的博客-CSDN博客blog.csdn.net计算任意多边形的面积 - tenos - 博客园www.cnblogs.com完美解决计算3D空间任意多边形面积_Studiouss的博客-CSDN博客blog.csdn.net求多边形面积公式已知顶点坐标_扬帆起航-CSDN博客blog.csdn.net任意给出一个三角形ΔABC设其顶点坐标分别为Ax1, y1Bx2, y2Cx3, y3那么根据线性代数的知识ΔABC的有向面积可表示为其中ΔABC顶点A、B、C逆时针给出时有向面积为正顺时针给出时有向面积为负。如图1所示S∆ABC0、S∆ABD0.图1我们知道任意的多边形都可以分割成多个三角形根据以上三角形面积公式就可以求出任意多边形的面积。如图2所示的六边形顶点坐标分别为Ox0, y0Ax1, y1Bx2, y2Cx3, y3Dx4, y4Ex5, y5则其面积可以表示为四个三角形面积之和SS∆OABS∆OBCS∆OCDS∆ODE其中所以即图2在这里前文给出的多边形示例是一个凸多边形那么这一结论适用于凹多边形吗下面我们看看如图3所示的凹多边形。图3按照上面的思路这里的凹多边形面积表示为SS∆OABS∆OBCS∆OCD从前面介绍可以知道S∆OAB-S∆OBA0所以很明显上式是成立的即此公式也适用于凹多边形。经过以上分析给出任意一个多边形其顶点坐标依次为x0y0x1y1x2y2...xnyn其中n234…则其面积可表示为换句话说若已知多边形边上的每一点坐标我们就可以求出该多边形的面积包括如图4所示的曲线图形当从O点到A点到O点的曲线上每一点坐标都已知时就能求出该曲线图的面积。 图4struct Point2d
{double x;double y;Point2d(double xx, double yy): x(xx), y(yy){}
};//计算任意多边形的面积顶点按照顺时针或者逆时针方向排列
double ComputePolygonArea(const vectorPoint2d points)
{int point_num points.size();if(point_num 3)return 0.0;double s 0;for(int i 0; i point_num; i)s points[i].x * points[(i1)%point_num].y - points[i].y * points[(i1)%point_num].x;return fabs(s/2.0);
}
或者struct Point2d
{double x;double y;Point2d(double xx, double yy): x(xx), y(yy){}
};//计算任意多边形的面积顶点按照顺时针或者逆时针方向排列
double ComputePolygonArea(const vectorPoint2d points)
{int point_num points.size();if(point_num 3)return 0.0;double s points[0].y * (points[point_num-1].x - points[1].x);for(int i 1; i point_num; i)s points[i].y * (points[i-1].x - points[(i1)%point_num].x);return fabs(s/2.0);
}或者scriptfunction square(x,y) {
//数组x,y分别按顺序存储各点的横、纵坐标值var sum00;for (var i 0; i x.length - 1; i) {sum0 (x[i] * y[i 1] - x[i 1] * y[i]);}var square (Math.abs(sum0 (x[i] * y[0]) - (x[0] * y[i]))) / 2;return square;}
/script