【派大星学C#】测绘程序设计大赛入门教程-3
2026/7/17 4:44:37 网站建设 项目流程

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[] str=sr.ReadLine().Trim().Split(',');处按F9插入断点-最左侧出现红色圆点(后期调试有关,先不深入介绍),按F10开始进程,选择文件导入之后,在黄光标到达图示位置,在下侧监视1中输入str,查看列表,图示右侧显示为P1数据的话即读取文件成功。

将分隔的string类型数据name、x、y提取出来,提取出来之后就要新建一个空的列表用于展示数据(新建Datacenter.cs)

double.Parse用于将string类型转为double类型

F9插入断点-最左侧出现红色圆点,按F10开始进程,选择文件导入之后,在黄光标到达图示位置,显示读取了P1、P2点即创建列表成功。

下图在Form.cs中(Ctrl+F5)打开文件后面编码展示数据,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.cs

using中有变化

4. 一键计算|输出报告

4.1 一键计算

4.2 输出报告

输出时可能会出现控制台窗口同时出现,影响观感。

右击空间前方交会——应用程序——输出类型——Windows应用程序——确定

5. 结语

上述便是空间前方交会测绘程序设计全过程,涉及到数组计算的编写,设置DataGridView控件样式,希望能好好理解!!!

感谢阅读!!!

命运反复考验只为看到一颗坚定的心!!!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询