|京ICP备14027590号-282

李建松《地理信息系统原理》(第2版)考研真题整理

编程题

面状目标重心可以通过计算梯形重心的平均值而得到。将多边形的各个顶点投影到x轴上,就得到一系列梯形(见下图),所有梯形重心的联合就确定了整个多边形的重心。设多边形的顶点序列(xi,yi)按顺时针编码,则其重心的计算公式为:

其中,和是i个梯形的重心的x坐标和y坐标,Ai是梯形的面积。它们由下式得到:

图计算梯形的重心位置

请用编程(VB或VC)方法实现上述计算。[中

山大学2011、2012年研]

答:使用C++语言,在VC++6.0平台或Visual Studio 2013 IDE上编译,计算梯形面积的具体程序(伪代码)如下所示:

INPUT Array X[n],Y[n];

double Sum_A=0.0;

double Sum_YA=0.0;

double Sum_XA=0.0;

double XX,YY;

For(int i=0,i<n,i++)

Sum_A=Sum_A+(Y[i]+Y[i+1])*(X[i]-X[i+1])/2;

For(i=0,i<n,i++)

Sum_XA=Sum_XA+(X[i+1]^2+X[i+1]X[i]+X[i]^2)*(Y[i+1]-Y[i])/6;

For(i=0,i<n,i++)

Sum_YA=Sum_YA+(Y[i+1]^2+Y[i+1]Y[i]+Y[i]^2)*(X[i+1]-X[i])/6;

XX=Sum_XA/Sum_A;

YY=Sum_YA/Sum_A;

OUTPUT XX,YY;


END

注:XX,YY即为梯形重心的横纵坐标值。

读书是学习,使用也是学习,而且是更重要的学习。——伟人

发表评论

|京ICP备18012533号-223