基础测绘计算函数设计

1.实验内容

1.1 坐标正反算

1.2 交会计算

1.2.1 角度前方交会

1.2.2 角度后方交会

1.2.3 距离交会

2.界面展示

2.1主界面

2.2 坐标正反算

2.3 角度前方交会

2.4 角度后方交会

2.5 距离交会

3.附源代码

3.1 定义表示平面坐标的类Point

 class Point{public double x, y;//构造函数public Point(double x, double y){this.x = x; this.y = y;}public double Distance(Point p){return Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));}}

3.2 主界面

private void button1_Click(object sender, EventArgs e){int iPos1 = comboBox1.SelectedIndex;//获得当前选中行的索引switch(iPos1){case 0:{坐标正算 calculation1 = new 坐标正算();calculation1.ShowDialog();break;}case 1:{坐标反算 calculation2 = new 坐标反算();calculation2.ShowDialog();break;}}int iPos2 = comboBox2.SelectedIndex;switch(iPos2){case 0:{角度前方交会 calulation3 = new 角度前方交会();calulation3.ShowDialog();break;}case 1:{角度后方交会 calulation4 = new 角度后方交会();calulation4.ShowDialog();break;}case 2:{距离交会 calulation5 = new 距离交会();calulation5.ShowDialog();break;}}}

3.3 坐标正算

 private void button1_Click(object sender, EventArgs e){double x1 = double.Parse(textBox1.Text);double y1 = double.Parse(textBox2.Text);double rad = double.Parse(textBox5.Text);double distance = double.Parse(textBox6.Text);textBox3.Text = Convert.ToString(x1 + Math.Cos(rad)*distance);textBox4.Text = Convert.ToString(y1+Math.Sin(rad)*distance);}

3.4 坐标反算

```csharp
private void button1_Click(object sender, EventArgs e){double x1 = double.Parse(textBox3.Text);double y1 = double.Parse(textBox4.Text);double x2 = double.Parse(textBox5.Text);double y2 = double.Parse(textBox6.Text);Point p1 = new Point(x1, y1);Point p2 = new Point(x2, y2);textBox2.Text = Convert.ToString(p1.Distance(p2));//调用Point类中的Distance方法double x = x2 - x1;double y = y2 - y1;double Z =x/ y;double D;if(x>0){if(y>0){D = Math.Atan(Z);textBox1.Text = Convert.ToString(radtodms(D));}else{D = Math.Atan(Z) + 2 * Math.PI;textBox1.Text = Convert.ToString(radtodms(D));}}if(x==0){if(y>0){textBox1.Text = Convert.ToString(0);}else{D = Math.PI;textBox1.Text = Convert.ToString(radtodms(D));}}if(x<0){D = Math.Atan(Z) + Math.PI;textBox1.Text = Convert.ToString(D);}}

3.5 角度前方交会

private void label8_Click(object sender, EventArgs e){double x1 = double.Parse(textBox1.Text);double y1 = double.Parse(textBox2.Text);double x2 = double.Parse(textBox4.Text);double y2 = double.Parse(textBox5.Text);double α1 = double.Parse(textBox3.Text);double α = radtodms(α1);double β1 = double.Parse(textBox6.Text);double β = radtodms(β1);double Z1 = x1 / Math.Tan(β) + x2 / Math.Tan(α) - y1 + y2;double D = 1 / Math.Tan(α) + 1 / Math.Tan(β);double Z2 = y1 / Math.Tan(β) + y2 / Math.Tan(α) + x1 - x2;double x3 = Z1 / D;double y3 = Z2 / D;textBox7.Text = Convert.ToString(x3);textBox8.Text = Convert.ToString(y3);}

3.6 角度后方交会

private void button1_Click(object sender, EventArgs e){double x1 = double.Parse(x1_textBox1.Text);double y1 = double.Parse(y1_textBox2.Text);double x2 = double.Parse(x2_textBox3.Text);double y2 = double.Parse(y2_textBox4.Text);double x3 = double.Parse(x3_textBox5.Text);double y3 = double.Parse(y3_textBox6.Text);double α = double.Parse(textBox7.Text);double β = double.Parse(textBox8.Text);double γ = double.Parse(textBox9.Text);double A = Math.Atan((y3 - y1) / (x3 - x1)) - Math.Atan((y2 - y1) / (x2 - x1));double B = Math.Atan((y1 - y2) / (x1 - x2)) - Math.Atan((y3 - y2)/(x3-x2));double C = Math.Atan((y2 - y3) / (x2 - x3)) - Math.Atan((y1 - y3) / (x1 - x3));double P1 = 1 / ((1 / (Math.Tan(A))) - (1 / Math.Tan(α)));double P2 = 1 / ((1 / (Math.Tan(B))) - (1 / Math.Tan(β)));double P3 = 1 / ((1 / (Math.Tan(C))) - (1 / Math.Tan(γ)));double x4 = (P1 * x1 + P2 * x2 + P3 * x3) / (P1 + P2 + P3);double y4 = (P1 * y1 + P2 * x2 + P3 * y3) / (P1 + P2 + P3);x4_textBox10.Text = Convert.ToString(x4);y4_textBox11.Text = Convert.ToString(y4);}

3.7 距离交会

private void button1_Click(object sender, EventArgs e){double x1 = double.Parse(textBox1.Text);double y1 = double.Parse(textBox2.Text);double x2 = double.Parse(textBox3.Text);double y2 = double.Parse(textBox4.Text);double Dap = double.Parse(Dap_textBox5.Text);double Dbp = double.Parse(Dbp_textBox6.Text);Point A = new Point(x1, y1);Point B = new Point(x2, y2);double Dab = A.Distance(B);double Za = Math.Acos((Dab * Dab + Dap * Dap - Dbp) / (2 * Dab * Dap));double Zb = Math.Acos((Dab * Dab + Dbp * Dbp - Dap) / (2 * Dab * Dbp));double Zab = Math.Atan((y2 - y1) / (x2 - x1));double Zap = Zab - Za;double Zbp = Zap + Zb;double xp1 = x1 + Dap * Math.Cos(Zap);double yp1 = y1 + Dap * Math.Sin(Zap);double xp2 = x2 + Dbp * Math.Cos(Zbp);double yp2 = y2 + Dbp * Math.Sin(Zbp);double xp = (xp1 + xp2) / 2;double yp = (yp1 + yp2) / 2;textBox7.Text = Convert.ToString(xp);textBox8.Text = Convert.ToString(yp);}

如有不正确之处希望各位指出,非常感谢!!!
禁止抄袭!!!

基础测绘计算函数设计(坐标正反算、交会计算)相关推荐

  1. matlab写函数进行坐标正反算,坐标正反算的MATLAB GUI设计与应用

    第 30 卷 第 4 期 2018 年 10 月 黄河水利职业技术学院学报 JournalofYellowRiverConservancyTechnicalInstitute Vol.30 No.4 ...

  2. matlab写函数进行坐标正反算,基于matlab的坐标正反算

    <基于matlab的坐标正反算>由会员分享,可在线阅读,更多相关<基于matlab的坐标正反算(6页珍藏版)>请在人人文库网上搜索. 1.基于 matlab 的坐标正反算测量程 ...

  3. 测绘—matlab—坐标正反算

    在测量实验过程中需要进行单个.批量坐标正反算时可以用计算机运算提高效率 1.正算函数 输入的azimuth是弧度值 [x2,y2] = xy_direct(x1,y1,distance, azimut ...

  4. 曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

    有个4800线元法程序,改成5800后,运行后计算某点1的坐标不对,再次运行同样计算该点的坐标,又是对的了,同样计算某点2仍是第二次才能算对,谁能知道怎么回事? 下面是该4800程序      曲线任 ...

  5. 高斯坐标正反算c语言,高斯投影坐标正反算编程报告

    <高斯投影坐标正反算编程报告>由会员分享,可在线阅读,更多相关<高斯投影坐标正反算编程报告(11页珍藏版)>请在人人文库网上搜索. 1.高斯投影坐标正反算编程报告1. 编程思想 ...

  6. 坐标反算c语言程序,道路坐标正反算无限个拐点计算器测量程序(新20070825)

    <道路坐标正反算无限个拐点计算器测量程序(新20070825)>由会员分享,可在线阅读,更多相关<道路坐标正反算无限个拐点计算器测量程序(新20070825)(10页珍藏版)> ...

  7. 曲线任意里程中边桩坐标正反算(CASIO fx-4850P计算器)程序第四次修改版

    曲线任意里程中边桩坐标正反算(4850P计算器)程序(第四次修改版) 曲线任意里程中边桩坐标正反算(CASIO fx-4850P计算器)程序 ( 第四次修改版 ) 一.程序功能及原理 1.功能说明:本 ...

  8. 坐标正反算通用程序(极短篇)

    第一篇  坐标正反算通用程序(极短篇) 1. 坐标正算主程序(命名为ZBZS) 第1行:Lbl  0:{W,T,B}:W"K=":T"LEN=":B 第2行:P ...

  9. 高斯投影坐标正反算公式

    §8.3高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的:②如果是正形投影,除了满足正形投影的条件外(C-R偏微分方程),还有它本身的特殊条件. 8.3.1高斯投影坐标正算公式:  高斯投 ...

最新文章

  1. JS动态添加多个事件
  2. mysql数据库的备份与还原
  3. 机器学习中的不平衡分类方法(part4)--朴素贝叶斯分类器
  4. 计算机辅助教学应用论文,高校计算机辅助教学应用论文
  5. 汇编试验五:编写、调试具有多个段的程序
  6. Aix vmstat命令解析
  7. SCCM 2012 R2---安装客户端代理软件
  8. POJ 1953 (DP)
  9. 75.58 亿美元成交!美国最大规模 5G 毫米波频谱拍卖
  10. php 变量存活期,php 变量生命周期:PHP源码分析-PHP的生_php
  11. 运维工程师绩效考核表_企业IT运维存在的五个普遍问题及解决方法
  12. 数字图像处理使用计算机对,数字图像处理的应用现状及发展方向
  13. 【滑动窗口协议模拟】
  14. 【汽车总线技术】CAN FD与CAN网络共存的解决方案
  15. word页码任意设置,如显示在页脚外侧、横版页面要求显示在左侧或右侧
  16. JZ38 字符串的排列
  17. TypeError: Cannot read property ‘id‘ of null
  18. Springcloud微服务概述
  19. 辨析:分段函数是不是初等函数?
  20. go使用zap + lumberjack重构项目的日志系统

热门文章

  1. 英汉翻译对照之视频声频媒体处理
  2. 战地五多计算机登录账户,玩战地5电脑配置要求
  3. 24339 Problem B 采药
  4. 如何看电脑内存型号?
  5. python——合数分解
  6. FlexRay 简介
  7. 数学实验——函数绘图实验
  8. vue+ol实现 ol 地图加载geojson
  9. facebook faiss的安装测试
  10. 李宏毅深度学习ppt总结