论文部分内容阅读
摘 要:作为测绘工程专业的本科生,测量、绘图、计算是三大基本功。在这三个当中,测量数据计算相对比较繁琐,也是十分重要的部分,因为一串数据就是一个大型工程根基,如果数据错误,那么造成的损失不言而喻。基于这一点,相关人员开发了多款适用于测绘计算的计算器,为测绘工作者的数据计算带来了福音,减轻了很大的工作量。
关键词:Java GUI编程;测绘计算器;角度测量;高差测量
引言:
市面上的计算器都是工艺成品,那么如何通过计算机程序开发出一款计算器?基于Java GUI开发的适用于测绘行业的计算器相对比较繁琐,不仅仅是简单的加减乘除。由于测绘数据[1]所涉及到的范围比较广,其中包括角度计算、三角函数计算、对数计算、幂次方、弧度制转化等等,但是本篇文章只涉及简单的角度计算,方位角计算和高差计算。
1.角度测量计算器
目前来说,市面上关于测绘的计算器各式各样,如CASIO(卡西欧)、得力DELI、TI(德州仪器)、SHARP(夏普)、Canon (佳能)、COMIX(齐心)等。他们的功能都很全面,本部分只对计算器的角度计算开发功能进行说明,首先我们对计算器适用范围进行选择,选择我们需要的角度测量。
对于窗体这部分内容,不再进行赘述。主要谈谈如何实现角度计算。其实,测绘中的角度计算和我们日常生活中的十进制计算有相似之处,相似之处在于他们的计算过程都是些数值加减运算,这个比较简单。不同之处就是角度计算中度分秒的转化问题,以及度分秒之间的计算顺序和计算方法。举个简单的例子,如果我们第一次测量一个水平角,为了方便通常将仪器进行置零处理,此时记录第一个角度值为0°00’00’’,转动仪器测得第二个水平角值为58°25’36’’,这个时候角差我们就可以很方便计算出来,就是第二个角的读数,如果此时再测第三个水平角的话,可能计算起来就没有那么方便了,假设读数第三个角为98°49’24’’,此时计算第二个角的读数则为98°49’24’’-58°25’36’’=73°23’48’’。这其中计算需要注意的第一个为顺序问题为先从秒开始计算,然后算分最后算度,而不是整体数值计。其次,我们需要明白度分秒的转换1°=60’,1’=60’’,这个和我们正常的十进制计算还是有区别的。
基于以上两点对如何实现进行深入地解释说明。首先,对计算器的布局进行设计,通过组合工具完成计算器的基本操作。下面进行两步,第一设计运算顺序,第二设计计算方法。计算顺序,首先保证输入的数据正确,最主要的就是分和秒需要小于60,这里只需要使用if进行条件判断即可。其次保证我们得先从秒开始计算,然后计算分,最后进行度的加减运算。这一步可以使用数组来存储我们测得的数据,然后利用for循环从存储数组的最后一个数来执行运算操作,依次往下进行执行分和度的计算。那么,在角度测量的过程中,除了测简单的水平角,有时还需要计算方位角,那么方位角的观测也是可以用程序操作来实现计算程序,具体如下。
首先定义一个方位角大小,然后根据其他方位角的坐标和方向值,进行依次计算,例如规定αab = 15°,∠bap = 90°,∠apq = 127°,∠pqh = 131°,求qh的方位角。知道αab = 15°,∠bap = 90°即可算出直线ap的方位角为105°,此时需要求pq的方位角,但是此时我们知道ap和q不是共起点,这是需要我们ap方位角加180°,变成共起点的方位角,算的pa的方位角为285°,在进行qh的方位角计算,这个时候也需要对pq方位角进行转化,转化成与qh是共起点的,最终算得的qh方位角大小为101°,通过以上说明,我们需要将文字变成代码的形式执行。在这个程序当中需要进行一个while进行判断,如果两条直线是共起点,那么则进行相应的角度加减运算,如果两条直线不是共起点,那么他们的方位角需要分情况进行讨论,如果这个角是大于180°,转化成共起点方位角时需要减去180°;如果这个叫小于180°,则需要加上180°,这部分通过while的重复判断执行最终算出集结果。
2.高差测量计算器
在使用计算器进行高差测量计算时,我们需要选择高差测量。相对于前面的角度测量,高差测量相对来说要简单得多,只需要简单的操作即可。在测量过程中可能会有超限误差的存在[2],普通的计算器是无法识别这种错误,但是基于Java编程开发的计算器可以起到提醒作用,操作如下。
我们选择高差测量之后,就需要进行对限差进行规定。这里只需要简单的定义即可,定义限差之后,只需要對我们算出的数值进行一个判断。这里简单的以四等水准测量为例,进行操作说明。首先,既然四等水准测量,那么我们就可以得到闭合容许差值为6*√4=12mm,红黑面的读数之差不大于3mm。算出容许差和限差之后,我们定义一个数int x = 12,int y = 3;然后进行其他读数。读的的其他黑红面数据为2198, 6888;1600,6388; 我们通过计算发现,红黑面的差值一个是-3,一个是-1,都在允许范围之内(小于3mm),这个时候计算器会正常运行,不出错误。如多说计算结果出错了,超出了限差,那么此时计算器就会提示数据出错。这些都是一些简单的小操作,只是对数据进行简单的加减操作和数据结果进行判断选择,避免计算错误的出现。
3.结语
通过简单的案例说明,由此解释编程给我们带来的便捷,可能通过以上简单程序不足以说明程序优于人工,但是当我们遇到大的工程或者繁琐计算时,所设计的计算还是十分方便的。在方位角的计算程序中,while选择就减少很多不必要的麻烦,自动判断角度执行加减变化还是不变。总之,通过Java GUI编写的简易测量计算器为我们的计算带来很大便捷。
参考文献:
[1]张龙. 网络资源测绘数据表达与分析技术研究[D].战略支援部队信息工程大学,2018.
[2]温浩兴,许谦,王娜.南山26米射电望远镜轨道高差测量及其对指向精度的影响[J].天文研究与技术,2019,16(02):158-166.
关键词:Java GUI编程;测绘计算器;角度测量;高差测量
引言:
市面上的计算器都是工艺成品,那么如何通过计算机程序开发出一款计算器?基于Java GUI开发的适用于测绘行业的计算器相对比较繁琐,不仅仅是简单的加减乘除。由于测绘数据[1]所涉及到的范围比较广,其中包括角度计算、三角函数计算、对数计算、幂次方、弧度制转化等等,但是本篇文章只涉及简单的角度计算,方位角计算和高差计算。
1.角度测量计算器
目前来说,市面上关于测绘的计算器各式各样,如CASIO(卡西欧)、得力DELI、TI(德州仪器)、SHARP(夏普)、Canon (佳能)、COMIX(齐心)等。他们的功能都很全面,本部分只对计算器的角度计算开发功能进行说明,首先我们对计算器适用范围进行选择,选择我们需要的角度测量。
对于窗体这部分内容,不再进行赘述。主要谈谈如何实现角度计算。其实,测绘中的角度计算和我们日常生活中的十进制计算有相似之处,相似之处在于他们的计算过程都是些数值加减运算,这个比较简单。不同之处就是角度计算中度分秒的转化问题,以及度分秒之间的计算顺序和计算方法。举个简单的例子,如果我们第一次测量一个水平角,为了方便通常将仪器进行置零处理,此时记录第一个角度值为0°00’00’’,转动仪器测得第二个水平角值为58°25’36’’,这个时候角差我们就可以很方便计算出来,就是第二个角的读数,如果此时再测第三个水平角的话,可能计算起来就没有那么方便了,假设读数第三个角为98°49’24’’,此时计算第二个角的读数则为98°49’24’’-58°25’36’’=73°23’48’’。这其中计算需要注意的第一个为顺序问题为先从秒开始计算,然后算分最后算度,而不是整体数值计。其次,我们需要明白度分秒的转换1°=60’,1’=60’’,这个和我们正常的十进制计算还是有区别的。
基于以上两点对如何实现进行深入地解释说明。首先,对计算器的布局进行设计,通过组合工具完成计算器的基本操作。下面进行两步,第一设计运算顺序,第二设计计算方法。计算顺序,首先保证输入的数据正确,最主要的就是分和秒需要小于60,这里只需要使用if进行条件判断即可。其次保证我们得先从秒开始计算,然后计算分,最后进行度的加减运算。这一步可以使用数组来存储我们测得的数据,然后利用for循环从存储数组的最后一个数来执行运算操作,依次往下进行执行分和度的计算。那么,在角度测量的过程中,除了测简单的水平角,有时还需要计算方位角,那么方位角的观测也是可以用程序操作来实现计算程序,具体如下。
首先定义一个方位角大小,然后根据其他方位角的坐标和方向值,进行依次计算,例如规定αab = 15°,∠bap = 90°,∠apq = 127°,∠pqh = 131°,求qh的方位角。知道αab = 15°,∠bap = 90°即可算出直线ap的方位角为105°,此时需要求pq的方位角,但是此时我们知道ap和q不是共起点,这是需要我们ap方位角加180°,变成共起点的方位角,算的pa的方位角为285°,在进行qh的方位角计算,这个时候也需要对pq方位角进行转化,转化成与qh是共起点的,最终算得的qh方位角大小为101°,通过以上说明,我们需要将文字变成代码的形式执行。在这个程序当中需要进行一个while进行判断,如果两条直线是共起点,那么则进行相应的角度加减运算,如果两条直线不是共起点,那么他们的方位角需要分情况进行讨论,如果这个角是大于180°,转化成共起点方位角时需要减去180°;如果这个叫小于180°,则需要加上180°,这部分通过while的重复判断执行最终算出集结果。
2.高差测量计算器
在使用计算器进行高差测量计算时,我们需要选择高差测量。相对于前面的角度测量,高差测量相对来说要简单得多,只需要简单的操作即可。在测量过程中可能会有超限误差的存在[2],普通的计算器是无法识别这种错误,但是基于Java编程开发的计算器可以起到提醒作用,操作如下。
我们选择高差测量之后,就需要进行对限差进行规定。这里只需要简单的定义即可,定义限差之后,只需要對我们算出的数值进行一个判断。这里简单的以四等水准测量为例,进行操作说明。首先,既然四等水准测量,那么我们就可以得到闭合容许差值为6*√4=12mm,红黑面的读数之差不大于3mm。算出容许差和限差之后,我们定义一个数int x = 12,int y = 3;然后进行其他读数。读的的其他黑红面数据为2198, 6888;1600,6388; 我们通过计算发现,红黑面的差值一个是-3,一个是-1,都在允许范围之内(小于3mm),这个时候计算器会正常运行,不出错误。如多说计算结果出错了,超出了限差,那么此时计算器就会提示数据出错。这些都是一些简单的小操作,只是对数据进行简单的加减操作和数据结果进行判断选择,避免计算错误的出现。
3.结语
通过简单的案例说明,由此解释编程给我们带来的便捷,可能通过以上简单程序不足以说明程序优于人工,但是当我们遇到大的工程或者繁琐计算时,所设计的计算还是十分方便的。在方位角的计算程序中,while选择就减少很多不必要的麻烦,自动判断角度执行加减变化还是不变。总之,通过Java GUI编写的简易测量计算器为我们的计算带来很大便捷。
参考文献:
[1]张龙. 网络资源测绘数据表达与分析技术研究[D].战略支援部队信息工程大学,2018.
[2]温浩兴,许谦,王娜.南山26米射电望远镜轨道高差测量及其对指向精度的影响[J].天文研究与技术,2019,16(02):158-166.