常用测绘C#程序设计源代码Word格式.docx

上传人:b****5 文档编号:16471455 上传时间:2022-11-23 格式:DOCX 页数:47 大小:142.88KB
下载 相关 举报
常用测绘C#程序设计源代码Word格式.docx_第1页
第1页 / 共47页
常用测绘C#程序设计源代码Word格式.docx_第2页
第2页 / 共47页
常用测绘C#程序设计源代码Word格式.docx_第3页
第3页 / 共47页
常用测绘C#程序设计源代码Word格式.docx_第4页
第4页 / 共47页
常用测绘C#程序设计源代码Word格式.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

常用测绘C#程序设计源代码Word格式.docx

《常用测绘C#程序设计源代码Word格式.docx》由会员分享,可在线阅读,更多相关《常用测绘C#程序设计源代码Word格式.docx(47页珍藏版)》请在冰豆网上搜索。

常用测绘C#程序设计源代码Word格式.docx

doubleD=double.Parse(Console.ReadLine());

请输入垂直角[ddd.mmss]="

doublea=DEG(double.Parse(Console.ReadLine()));

请输入仪器高="

doublei=double.Parse(Console.ReadLine());

请输入反光镜高="

doublev=double.Parse(Console.ReadLine());

doubleh=D*Math.Sin(a)+(1-0.13)*D/6371000.0*D/6371000.0*Math.Cos(a)*Math.Cos(a)/2.0+i-v;

Console.WriteLine("

高差为{0}"

h);

}

//将ddd.mmss转为弧度

staticpublicdoubleDEG(doubleang)

intfuhao=(int)(ang/Math.Abs(ang));

ang=Math.Abs(ang);

intd=(int)ang;

intm=((int)(ang*100))-d*100;

doubles=ang*10000-m*100-d*10000;

return((d+m/60.0+s/3600.0)*fuhao)/180.0*Math.PI;

(2)如图所示,已知A点的坐标及A点到B点的边长及方位角,计算B点的坐标。

请输入A点的X坐标="

doubleXA=double.Parse(Console.ReadLine());

请输入A点的Y坐标="

doubleYA=double.Parse(Console.ReadLine());

请输入A到B的方位角[ddd.mmss]="

请输入A到B的水平距离="

doubleS=double.Parse(Console.ReadLine());

doubleXB=XA+S*Math.Cos(a);

doubleYB=YA+S*Math.Sin(a);

B点的坐标({0},{1})"

XB,YB);

(3)如图所示,已知A点和B点的坐标,计算A点到的边长及方位角。

请输入B点的X坐标="

doubleXB=double.Parse(Console.ReadLine());

请输入B点的Y坐标="

doubleYB=double.Parse(Console.ReadLine());

doubleS=距离(XA,YA,XB,YB);

doublea=方位角(XA,YA,XB,YB);

AB间的距离={0},从A到B的方位角={1}"

S,DMS(a));

//将弧度转为ddd.mmss

staticpublicdoubleDMS(doubleang)

ang+=1.0E-15;

//加上一个小量,以保证进位

ang=Math.Abs(ang)*180.0/Math.PI;

ang=(ang-d)*60.0;

intm=(int)ang;

doubles=(ang-m)*60.0;

return(d+m/100.0+s/10000.0)*fuhao;

//计算方位角,返回弧度值

publicstaticdouble方位角(doublex1,doubley1,doublex2,doubley2)

doubledeltaX=x2-x1;

doubledeltaY=y2-y1;

doubleangle=Math.PI*0.5;

if(Math.Abs(deltaX)>

0.000000001)

angle=Math.Atan2(deltaY,deltaX);

if(angle<

0)

angle+=Math.PI;

if(deltaY<

0.0)

returnangle;

//计算距离

publicstaticdouble距离(doublex1,doubley1,doublex2,doubley2)

returnMath.Sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

(4)在如图所示的支中导线,已知A点到M点的坐标方位角

及每个左角,求每条边的坐标方位角。

请输入A点到M点的坐标方位角="

//将A点到M点的坐标方位角换算为M点到A点的坐标方位角,以便利用公式

doublea0=DEG(double.Parse(Console.ReadLine())+180.0);

if(a0>

2*Math.PI)

a0-=2*Math.PI;

List<

double>

导线转角集合=newList<

();

inti=1;

do

请输入第{0}个转角的水平角[左角为正,右角为负]<

直接回车结束输入>

="

i++);

stringstr=Console.ReadLine();

if(str!

="

"

导线转角集合.Add(DEG(double.Parse(str)));

else

break;

}while(true);

i=1;

foreach(doubleain导线转角集合)

a0+=a+Math.PI;

elseif(a0<

a0+=2*Math.PI;

第{0}条边的方位角为{1}"

i++,DMS(a0));

 

(5)在如图所示的支中导线,已知A点和M点的坐标及每个左角和每条边长,求每个点的坐标。

请输入M点的x坐标="

doubleMx=double.Parse(Console.ReadLine());

请输入M点的y坐标="

doubleMy=double.Parse(Console.ReadLine());

请输入A点的x坐标="

doubleAx=double.Parse(Console.ReadLine());

请输入A点的y坐标="

doubleAy=double.Parse(Console.ReadLine());

导线边长集合=newList<

请输入第{0}个转角的水平角[左角为正,右角为负]<

i);

请输入第{0}条边长值="

i++);

导线边长集合.Add(double.Parse(Console.ReadLine()));

//计算M到A的坐标方位角

doublea0=方位角(Mx,My,Ax,Ay);

//计算每个点的坐标

doublex0=Ax;

doubley0=Ay;

for(intj=0;

j<

导线转角集合.Count;

j++)

a0+=导线转角集合[j]+Math.PI;

2*Math.PI)a0-=2*Math.PI;

x0=x0+导线边长集合[j]*Math.Cos(a0);

y0=y0+导线边长集合[j]*Math.Sin(a0);

P{0}点的坐标是:

{1},{2}"

j+2,x0,y0);

(6)在如图所示的单一附合水准路线中,已知A点和B点的高程及每段的长度和高差,求每个点的高程。

请输入A点的高程="

doubleHa=double.Parse(Console.ReadLine());

请输入B点的高程="

doubleHb=double.Parse(Console.ReadLine());

路线段长度集合=newList<

路线段高差集合=newList<

请输入第{0}段长度[公里为单位]<

路线段长度集合.Add(double.Parse(str));

请输入第{0}段高差="

路线段高差集合.Add(double.Parse(Console.ReadLine()));

//计算水准路线闭合差

doublew=0;

double总长度=0;

路线段长度集合.Count;

w+=路线段高差集合[j];

总长度+=路线段长度集合[j];

w=w-(Hb-Ha);

//闭合差

doublev=-w/总长度;

//每公里改正数

//计算每个点的高程

doubleH=Ha;

H+=路线段高差集合[j]+v*路线段长度集合[j];

P{0}点的高程是:

{1}"

j+1,H);

最后一点就是B点!

(7)在如图所示的前方交会中,ABJ三点按逆时针方向排列,已知AB两点的坐标和两个交会角度,求J点的坐标。

请输入B点的x坐标="

doubleBx=double.Parse(Console.ReadLine());

请输入B点的y坐标="

doubleBy=double.Parse(Console.ReadLine());

请输入α的角度值="

doubleα=DEG(double.Parse(Console.ReadLine()));

请输入β的角度值="

doubleβ=DEG(double.Parse(Console.ReadLine()));

//计算A到B的坐标方位角

doublea0=方位角(Ax,Ay,Bx,By);

//计算A到J的坐标方位角

a0-=α;

//计算A到B的边长

doubles=距离(Ax,Ay,Bx,By);

//计算A到J的边长

s=s/Math.Sin(Math.PI-α-β)*Math.Sin(β);

//计算J的坐标

doubleJx=Ax+s*Math.Cos(a0);

doubleJy=Ay+s*Math.Sin(a0);

J点的坐标={0},{1}"

Jx,Jy);

returnMath.Sqrt((

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1