大地坐标和里程的正反算
- 格式:doc
- 大小:45.50 KB
- 文档页数:5
1、主程序
程序名:1XY-KM
LbI 0:5→DimZ:Norm 2:1→A:"A:X,Y=1,KM,D=2"?A:
A=1=>Goto 1:A=2=>Goto 2:
LbI 1:Prog "DX":LbI A:Prog"QX":90→B:"PJ"?B:B→Z [1]:LbI B:1→F:"KM"?Z:Z= -1=>Goto 0:Z=-2=>Goto A:Z=-3=>Goto X :Prog"KM":?D: Prog "Z":I+D×COS(Z[2]+Z[1]) →X: J+D×Sin(Z[2]+Z[1]) →Y: Fix 3:"X=":Locate 6,4,X:"Y=":Locate 6,4,Y:Prog"JS":Goto B LbI 2:LbI A:Prog"QX":90→Z[1]:LbI C:2→F:"KM"?Z:Z = -1=>Goto 0:Z=-2=>Goto A:Z=-3=>Goto X :Prog"KM":?D:P rog "ZX": Fix 3:"KM=":Locate 6,4,Z:"D=":Locate 6,4,D:Goto C:LbI X:Mat F◢ Goto 0
2. 交点法正算子程序(Z)
程序名:Z
H2÷R÷24-H∧(4)÷2688÷R∧(3)→A:H÷2-H∧(3)÷240÷R2→B:((H2-N2)÷24÷R)÷Sin(Abs(P))-((H∧(4)-N∧(4))÷2688÷R ∧(3)) ÷Sin(Abs(P))→E:(R+A)tan(Abs(P)÷2)+B-E→T:P÷Ab s(P) →W:0→M:H→C:
If Z≤O-T:Then Z-O→S:G→Z[2]:Goto 2: IfEnd:
If Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:Goto 4:IfEnd:
If Z≤O-T+ΠR×Abs(P)÷180+H÷2-N÷2: Then 180(Z-O+T-0. 5H) ÷R÷Π→S : A+R(1-Cos(S))→B:H÷2-H∧(3) ÷240÷R2+R
sin(S)→A:R→M:G+WS→Z[2]:Goto 4: IfEnd:
O-T+ΠR×Abs(P)÷180+H÷2+N÷2-Z→S:(R+N2÷R÷24-N∧(4)÷2688÷R∧(3))tan(Abs(P) ÷2)+N÷2-N∧(3) ÷240÷R2+E→T :N→H:Prog “HX”:G+P→S:S-WK→Z[2]:U+(T-A)Cos(S)-WBSi n(S)→I:V+(T-A)Sin(S)+WBcos(S)→J:Goto 3:
LbI 4:U+(A-T)cos(G)-WBsin(G)→I:V+(A-T)Sin(G)+WBcos(G)
→J: Goto 3:
LbI 2:U+Scos(Z[2])→I:V+Ssin(Z[2]) →J: LbI 3:C→H
3. 交点法缓和段转化子程序(HX)
程序名:HX
S-S∧(5) ÷40÷R2÷H2+S∧(9) ÷3456÷R∧(4) ÷H∧(4)→A:S∧(3)
÷6÷R÷H-S∧(7) ÷336÷R∧(3) ÷H∧(3)+S∧(11) ÷42240÷R
∧(5) ÷H∧(5)→B:90S2÷Π÷R÷H→K:RH÷S→M
4. 交点法反算子程序(ZX)
程序名:ZX
Z:0→D:LbI 0:Prog “Z”:Pol(X-I,Y-J):J-Z[2] →J:Isin(J)
→S:Icos(J) →I:If Abs(I)<0.1:Then Z+I→Z:S→D:Goto 2:E
lse Goto 1: LbI 1:If M=0:Then Z+I→Z:Goto 0:Eles Pol(M-
WS,I):(JMΠ)/180→I:Z+I→Z:Goto 0:IfEnd
LbI 2
5.线路选择子程序(线路选择输0时。
则输曲线参数(QX)
程序名:QX
1→A:”QX:?=0,X1=1”?A:A→Z[3]:
If A=0:Then Goto 1:Else Goto 2: IfEnd:
LbI 1:”JDKM”?O:”XJ”?U:”YJ”?V:”FW”?G:”LS1”?H:?“LS2”?N:“JDPJ”?P:?R:LbI 2
6.坐标计算参数转化子程序(F)
程序名:F
Mat F[1,1]→O: Mat F[1,2]→U: Mat F[1,3]→V: Mat F[1,4]→G: Mat F[1,5]→H: Mat F[1,6]→N: Mat F[1,7]→P: Mat F
[1,8]→R
7.导线点子程序(DX)
程序名:DX
Z[4]→K:Z[5]→L:“X Z”?K:”YZ”?L:K→Z[4]:L→Z[5]
8.线路中线元段判别子程序(KM)
程序名:KM
If Z[3]=0:Then Goto 0:Else If Z[3]=1:Then Prog “X1”:
LbI 0
9:极坐放样计算程序(计算放样点至置仪点方位角及距离)
程序名:JS
X:Y:Z[4]→K:Z[5]→L:Pol(X-K, Y-L):IF J<0:Then J+360→J:IFEnd:Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J))→J: Fix 4:” FWJ=”: Locate 6,4,J:
F ix 3:” S=”:Locate 6,4,I◢
10.数据子程序(附后示例)
①程序名:X1(线路1坐标计算要素程序)
If Z≤122269.856:Then [[121656.952,2603848.019,50835 1.147,98°53′22.6″,660,300,41°47′44.1″,1415.097]]→Mat F:Goto 0: IfEnd:
If Z≤125115.9:Then [[123984.982,2601974.464,509885.4 41,140°41′06.8″,700,400,-39°31′43.7″,2800]]→Ma t F:Goto 0:IfEnd:
LbI 0: Prog”F”
说明:If Z《交点HZ点桩号:Then[[交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点总偏角,圆半径]] →Mat F:Goto 0: IfEnd:
注:偏角分正负,左偏为负,右偏为正.加粗O为子母.
输入部分:
1、"A:X,Y=1,KM,D=2"? 选择正反算,输1为正算,输2为反算;
2、XZ? YZ?输入置仪点X、Y坐标
3、”QX:?=0,X1=1”? 选择手工输入参数及调入参数,输0则手工输入交点线元参数,输1则调入子程序X1的线元参数。
4、PJ? 路线方向中线向右夹角,默认为90度;
5、JDKM?XJ?YJY?FW?LS1?LS2?JDPJ?R?分别输入:交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点总偏角,圆半径
6、KM?输入计算段任意点桩号(主程序中输-1,返回选择正反算,输-2,返回选择输入参数、调用参数,输-3,输出计算段线元参数。
7、D?距中桩距离,左负,右正,中桩输0。
输出部分:
1、X=*** 正算时,计算得出的所求点的X坐标
2、 Y=*** 正算时,计算得出的所求点的Y坐标
3、FWJ=*** 正算时,计算得出的所求点的至置仪点方位角(显示125.3258即是125度32分58秒)
4、S=*** 正算时,计算得出的所求点的至置仪点距离
5、KM=*** 反算时,计算得出的所求点的里程
6、D=*** 反算时,计算得出的所求点的边距。