任意凸多边形的重心求解

上传人:ni****g 文档编号:497561124 上传时间:2023-01-17 格式:DOC 页数:3 大小:45.50KB
返回 下载 相关 举报
任意凸多边形的重心求解_第1页
第1页 / 共3页
任意凸多边形的重心求解_第2页
第2页 / 共3页
任意凸多边形的重心求解_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《任意凸多边形的重心求解》由会员分享,可在线阅读,更多相关《任意凸多边形的重心求解(3页珍藏版)》请在金锄头文库上搜索。

1、模型的建立与求解一、计算凸多边形的重心对于任意凸多边形,我们以其重心为蛛网的中枢区中心,也即蜘蛛的等待猎物点,以此点出发,先发出放射丝,再织捕丝。1.计算任意凸多边形重心的理论基础1.四边形的重心作法:连接出四边形的一条对角线,这样四边形就变成两个三角形的组合体,分别作出两个三角形的重心,并连接两个重心成一条线段AB,同样,连接出四边形的另一条对角线,四边形就变成另外两个三角形的组合体,分别作出这两个三角形的重心,并连接两个重心成一条线段CD,则线段AB,CD的交点就是四边形的重心。2五边形的重心作法:连接出五边形的任一条对角线,将五边形分为1个三角形与一个四边形组合体,分别作出三角形的重心,

2、和四边形的重心,并连成线段AB;连接五边形的另外一条对角形,将五边形分为另1个三角形与四边形的组合体,分别作出三角形与四边形的重心,并连接成线段CD;则AB、CD的交点就是五边形的重心。3、用数学归纳法,对于六边形、七边形,N边形,都可以用上述方法,先连接出一条对角线,将N边形化为一个三角形与(N-1)边形,或四边形与(N-2)边形,然后分别作出重心,并连接成线段,然后再连接另外一条对象线,分别作出两个组合体的重心并连接成线段,两条线段的交点就是N边形的重心。2.重心计算的算法程序实现:有了以上理论基础,我们通过C+语言编写了一个计算任意凸多边形的程序,算法思想如下,算法程序见附录一。在平面上

3、取一点(一般取原点)得到N个三角形OPiPi+l(其中点的顺序为逆时针)分别求出这N个三角形的重心Ci和面积Ai(注意此处面积是有向面积,就是用叉乘求面积时保留其正负号)求出A=A1+A2+.+AN(同样保留正负号的代数相加)4重心C=sigma(Ai+Ci)/A;附录一:任意凸多边形重心C+算法#include#include#includeusingnamespacestd;structpointdoublex;doubley;pointgravity(point*p,intn)doublearea=0;pointcenter;center.x=0;center.y=0;for(inti=

4、0;in-1;i+)area+=(pi.x*pi+1.y-pi+1.x*pi.y)/2;center.x+=(pi.x*pi+1.y-pi+1.x*pi.y)*(pi.x+pi+1.x);center.y+=(pi.x*pi+1.y-pi+1.x*pi.y)*(pi.y+pi+1.y);area+=(pn-1.x*p0.y-p0.x*pn-1.y)/2;center.x+=(pn-1.x*p0.y-p0.x*pn-1.y)*(pn-1.x+p0.x);center.y+=(pn-1.x*p0.y-p0.x*pn-1.y)*(pn-1.y+p0.y);center.x/=6*area;center.y/=6*area;returncenter;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号