的桩号小于等于临界点时,就定位在了本交点上。由于数据库程序每一条数据是将交点从小到大依次编写的,程序将顺序地从第一个临界点开始判别,因此实质上程序是判别当输入桩号大于前一临界桩号、小于等于本临界桩号时(这个范围称为交点定位桩号范围),才定位在本交点上。
因此,交点定位桩号范围一般是从本交点的ZH点到下一交点的ZH点,鉴于可能出现两曲线之间的直线段为0的复曲线,在输入定位桩号定位计算交点时,最好取交点曲线上的任一桩号。
2.交点计算范围
所谓交点计算范围,是指利用当前的交点数据,可有效地计算出中桩坐标的桩号范围。可以容易地得知,一般情况下,交点计算范围包括本交点的平曲线,以及本平曲线之前和之后的直线段(如果有的话)。
我们可以看出,根据交点计算范围的定义,相邻两交点曲线间若存在直线段,
则该直线段则成为相邻两交点的重复计算范围,即既可在前一交点内计算,也可在后一交点内计算,并且均可计算出准确的结果。
定义了交点计算范围,当输入的桩号超过此范围时,程序会提示“KP OUT”,表示桩号超出范围,提示使用者注意。因此,一定要准确地理解和设定交点计算范围,以免到了现场计算出错还不知道,切记切记。 三、断链的处理
现在终于回到了正题,讲述ROAD-2程序进行断链的处理与计算,这实在没有办法,因为没有前面的铺垫,就没法讲断链的处理。 1.有断链时的交点定位与交点计算范围
当存在断链时(这是特殊情况,不再是一般情况),交点定位临界桩号就有了一点小小变化。断链之前的那个交点的定位临界点就不应选择下一交点的ZH点,而应选择断链点的桩号。什么,断链点有两个桩号?废话,当然用等号前面的那个桩号了!
而交点的计算范围,则不再遵循从上一交点的HZ点开始,至下一交点的ZH点结束的规定,而改为:
(1)对于断链点之前的交点,交点计算范围从上一交点的HZ点开始,至断链点结束(桩号为改线桩号,即等式之前的那个桩号);
(2)对于断链点之后的交点,交点计算范围则从断链点开始(桩号为老桩号,即等式之后的那个桩号),至下一交点的ZH点结束。
如此,数据库子程序的编写就OK了,当然,这还只是断链处理过程中第一个注意事项,重要的还在后面的程序操作上。
2.工程实例(感谢校友曾令武提供工程实例)
根据某高速公路的直曲表,在13公里范围内有一长链和一短链两个断链,非常典型,就用它了。
直曲表太大,只好拆成两半,不然字就看不清了,请各位见谅。
3.数据库文件ROAD-DATA2的编写
编写数据之前,我们先仔细看一下,容易看出,第一个断链点K112+943.305 = K112+900.001在JD59和JD60之间的直线段内,而第二个断链点K125+309.227 = K125+320.001在JD65和JD66之间的直线段内。因只研讨断链,我们只编写了这四个交点的数据(省略了中间六个交点的数据),编写时为操作方便采用了简化坐标和简化桩号。
数据库子程序中,红色字体均是断链相关的桩号,编写时一定要结合前面的讲述编写准确。计算时,记得要把ROAD-2程序第二行调用的数据库子程序名称改为“ROAD-DATA2”。
4.验证与应用示例
首先看第一个断链点K112+943.305 = K112+900.001,既然这两个桩号表示的是同一个点,那么计算出来的平面坐标应该相等,我们用计算器算一下看,先算等式左边的桩号K112+943.305,它应该在JD59的计算范围内。
退出程序,再次执行,计算等式右边的桩号K112+900.001,它应该在JD60的计算范围内。
由以上验证计算可看出,断链点K112+943.305和K112+900.001两个桩号的坐标计算结果相同,均为X=17412.741,Y=54373.675。大家有兴趣,也可按以上方法验证一下另一个断链点K125+309.227 = K125+320.001的坐标,强化一下操作。
在实际应用时,要注意断链点之前的桩号和断链点之后的桩号的交点定位,比如这个断链点K112+943.305 =K112+900.001,就会出现两个K112+920和两个K112+940,就一定要搞清楚哪个是断链点之前的,哪个是断链点之后的,头脑一定要清楚。
为方便大家计算验证,把该段的逐桩坐标表发表如下。
.
由此,断链处理得到圆满的解决。下次有时间讲讲如何利用ROAD-2计算卵形曲线坐标。