在X、Y坐标轴上,求多边形面积的面积和重心

2012届高考数学知识点总结精华版_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
2012届高考数学知识点总结精华版
高​中​知​识​点​总​结
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢计算几何——求多边形重心的思路
1、把多边形划分成多个三角形,求每个三角形的重心,重心坐标为:((x0 + x1 + x2) / 3, (y0 + y1 +
y2) / 3),三角形面积用叉积求,对凸多边形和凹多边形都适用(因为值有正负);
2、作为二维的多边形,把面积作为权值,分别乘以重心坐标的X和Y值;
3、分别将求出的X, Y值的加权平均数除以总面积,即多边形面积的重心坐标。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。任意多边形匀面重心的计算方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
&&¥2.00
&&¥3.00
&&¥2.00
喜欢此文档的还喜欢
任意多边形匀面重心的计算方法
要​提​高​编​程​必​看​的​一​本​好​书​!
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢MATLAB求多边形面积?及重心(质心)的函数MATLAB中知道了各点坐标,如何求多边形面积?及重心(质心)?有哪些函数可以进行这个计算?_作业帮
拍照搜题,秒出答案
MATLAB求多边形面积?及重心(质心)的函数MATLAB中知道了各点坐标,如何求多边形面积?及重心(质心)?有哪些函数可以进行这个计算?
MATLAB求多边形面积?及重心(质心)的函数MATLAB中知道了各点坐标,如何求多边形面积?及重心(质心)?有哪些函数可以进行这个计算?
可以用Regionprops函数!hdu1115(多边形重心算法)
题目意思:
给出一个n边形的n个顶点,求出这个n边形的重心坐标。
题目分析:
*①质量集中在顶点上
* n个顶点坐标为(xi,yi),质量为mi,则重心
* X = &( xi&mi ) / &mi
* Y = &( yi&mi ) / &mi
* 特殊地,若每个点的质量相同,则
* X = &xi / n
* Y = &yi / n
*②质量分布均匀
* 特殊地,质量均匀的三角形重心:
* X = ( x0 + x1 + x2 ) / 3
* Y = ( y0 + y1 + y2 ) / 3
*③三角形面积公式:S = ( (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1) ) / 2 ;
*做题步骤:1、将多边形分割成n-2个三角形,根据③公式求每个三角形面积。
* 2、根据②求每个三角形重心。
* 3、根据①求得多边形重心。
现在依据此算法给出两种代码,一种是将n个点,以其中一个点为标准,分成n-2个三角形,再进行求重心。
另一种是以原点为依据分成n+1个三角形,再进行求重心。
第一种代码:
struct Point{
double x,y;
double Area(Point p1,Point p2,Point p3){//叉乘求三角形面积
return ((p2.x-p1.x)*(p3.y-p1.y)-(p3.x-p1.x)*(p2.y-p1.y))/2;
int main()
scanf(%d,&t);
while(t--){
scanf(%d,&n);
Point p1,p2,p3;
double gx,gy,
gx=gy=sumarea=0;
scanf(%lf%lf%lf%lf,&p1.x,&p1.y,&p2.x,&p2.y);
for(int i=2;i scanf(%lf%lf,&p3.x,&p3.y);
double area=Area(p1,p2,p3);//单个三角的面积
gx+=(p1.x+p2.x+p3.x)*//重心乘以其权值(面积),因为每一个都要除以3,所医院放在最后
gy+=(p1.y+p2.y+p3.y)*
sumarea+=//计算所有权值
p2=p3;//替换p2,计算下一个三角形
gx=gx/sumarea/3;//求的多边形重心
gy=gy/sumarea/3;
printf(%.2lf %.2lf ,gx,gy);
第二种代码:
struct Point{
double x,y;
}p[10005];
double Area(Point p1,Point p2,Point p3){//叉乘求三角形面积
return ((p2.x-p1.x)*(p3.y-p1.y)-(p3.x-p1.x)*(p2.y-p1.y))/2.0;
int main()
p0.x=p0.y=0.0;
scanf(%d,&t);
while(t--){
scanf(%d,&n);
double gx,gy,sumarea,
gx=gy=sumarea=0;
for(int i = 0; i & ++i)
scanf(%lf%lf, &p[i].x, &p[i].y);
for(int i=1;i&=n;i++){
area=Area(p0,p[i%n],p[i-1]);//与原点单个三角的面积
gx+=(p[i%n].x+p[i-1].x)*//重心乘以其权值(面积),因为每一个都要除以3,所医院放在最后
gy+=(p[i%n].y+p[i-1].y)*
sumarea+=//计算所有权值
gx=gx/(sumarea*3);//求的多边形重心
gy=gy/(sumarea*3);
printf(%.2lf %.2lf ,gx,gy);
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。}

我要回帖

更多关于 多边形重心公式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信