1. 引言在测绘程序设计大赛入门教程-2中林黛玉带领大家实现了简单的点云数据处理相关的测绘程序设计本期将接着在同一解决方案下以空间前方交会为例编写相应测绘程序进行简单的练习另该比赛学习难度大时间成本高但慎终如始则无败事正式阅览本文前恳请各位读者先读一读下面这段文字在此先行致谢编者本人也是一个小白刚接触测绘程序设计大赛如若下述文章中有不足之处敬请指正。另外在这个AI飞速发展的时代希望读者们能够善于利用AI解决相应问题绝大部分都能查到的既然准备参加测绘程序设计大赛必然是拥有思考能力的。所以还请各位读者朋友们能够善用网络及AI助力自己学习。2. Winforms窗口设计(详细设置见【派大星学C#】测绘程序设计大赛入门教程-1这里就不过多赘述,可直接跳转至2.3 整体效果FileHelper.cs))2.1 新建项目VS2022 解决方案包含多个项目每个项目对应多个独立类每个类.cs实现相应功能右击解决方案CSDN_C#——添加——新建项目——控制台应用(.NET Framework)——修改名称(空间前方交会)——右击(空间前方交会)——新建项目——Windows窗体应用(.NET Framework)...为了方便管理派大星将CSDN_C#项目重命名为点云数据处理。2.2 特殊字符在空间前方交会中会出现特殊字符和数学字符在VS2022中导入需撰写相应代码对于小白派大星来说较为麻烦建议采用系统自带的Windows 字符映射表解决上述问题。打开任务管理器Win R——输入charmap回车打开字符映射表——字体下拉找到Cambria Math——找到字母Φ——选择复制类似的很多字符都可以通过上述方式找到。2.3 窗口效果上图窗口效果仍有不足表头单元格左右分隔竖线消失表头行高列宽等。2.3.1 表头和表格CellBorderStyle单元格边框样式Single单细实线默认None隐藏所有分隔线Raised:凸起立体边框(浮雕 3D 效果)Sunken:凹陷立体边框下沉 3D 效果)ColumnHeadersBorderStyle列标题边框样式Custom自定义Single单细实线Raised凸起立体边框(浮雕 3D 效果)Sunken凹陷立体边框下沉 3D 效果None隐藏所有分隔线ColumnHeadersHeightSizeMode调整表头高度Autosize自动随文字 / 字体缩放EnableResizing允许用户拖拽调整表头高度DisableResizing禁止拖拽高度固定ColumnHeadersDefaultCellStyle列标题样式点击选择Font更改相应字体字号更改表格中数据的位置ColumnHeadersDefaultCellStyle——Alignment——下拉找到MiddleCenter相应调整列宽类似于上述具体不在赘述。更改完上述设置表头单元格左右分隔竖线消失并未解决是因为Windows 系统主题接管表头的绘制样式即Windows 系统主题权限VS2022主题权限EnableHeadersVisualStyles设为false后彻底脱离 Windows 系统主题控制所有样式以在 VS 属性面板手动设置为准。2.3.2 整体效果及功能3. 导入数据|编写计算计算要求空间前方交会数据空间前方交会数据3.1 数据分析第一行不用读取sr.ReadLine();//读走无用行接着分为string类型点名double类型Xs坐标double类型Ys坐标等所以创建Datacenter.cs类来定义变量创建Algorithm.cs类来书写计算逻辑Datacenter只做「数据仓库」存放项目全部全局数据只定义变量不写计算逻辑。Algorithm只做「计算工具」只写数学算法、计算逻辑不存储永久数据。3.2 数据读取新建Point.cs用来管理数据建类方法同前。之后可以开始调试运行下图中蓝框位置一下查看是否开始读取文件中的数据。如果出现上述图片中的报错可在Program.cs中加入[STAThread]便可运行。如果出现的是点云数据统计的页面右击空间前方交会——设置为启动项再运行即可。在string[] strsr.ReadLine().Trim().Split(,);处按F9插入断点-最左侧出现红色圆点后期调试有关先不深入介绍按F10开始进程选择文件导入之后在黄光标到达图示位置在下侧监视1中输入str,查看列表图示右侧显示为P1数据的话即读取文件成功。将分隔的string类型数据name、x、y提取出来提取出来之后就要新建一个空的列表用于展示数据新建Datacenter.csdouble.Parse用于将string类型转为double类型按F9插入断点-最左侧出现红色圆点按F10开始进程选择文件导入之后在黄光标到达图示位置显示读取了P1、P2点即创建列表成功。下图在Form.cs中CtrlF5打开文件后面编码展示数据dataGridView1[列索引, 行索引].Value 值;如实操和右侧Form1中一样则数据读取成功上述代码较为繁琐整个设计思想和【派大星学C#】测绘程序设计大赛入门教程-2中点云数据处理一样便于派大星练习理解。3.3 计算空间辅助坐标与之前相同新建一个Algorithm.cs类专门用来实现计算空间辅助坐标、获取投影系数、计算地面坐标功能。在Datacenter.cs中新建六个u v w变量static public double u1;static public double v1;static public double w1;static public double u2;static public double v2;static public double w2;5.4 获取投影系数在Datacenter.cs中新建五个变量static public double Bu;static public double Bv;static public double Bw;static public double N1;static public double N2;3.4计算地面坐标在Datacenter.cs中新建三个变量static public double X;static public double Y;static public double Z;3.5 Algorithm.csusing中有变化4. 一键计算|输出报告4.1 一键计算4.2 输出报告输出时可能会出现控制台和窗口同时出现影响观感。右击空间前方交会——应用程序——输出类型——Windows应用程序——确定5. 结语上述便是空间前方交会测绘程序设计全过程涉及到数组计算的编写设置DataGridView控件样式希望能好好理解感谢阅读命运反复考验只为看到一颗坚定的心