卡西欧fx-5800p计算道路中、边线坐标放样程序
(此程序计算速度快,可以查找桩号和偏中距离)
(单园曲线超过半圈后有误差,半径5000米时,在半圈处的计算误差单方向8cm)
SUB-1
0.1739274226→A:
0.3260725774→B:
0.0694318442→K:
0.3300094782→L:
U+W(ACOS(G+180QKW(1÷P+KWD)÷π)+
BCOS(G+180QLW(1÷P+LWD)÷π)+
BCOS(G+180QW(1-L)(1÷P+WD(1-L))÷π)+
ACOS(G+180QW(1-K)(1÷P+WD(1-K))÷π))→X:
V+W(ASIN(G+180QKW(1÷P+KWD)÷π)+
BSIN(G+180QLW(1÷P+LWD)÷π)+
1
BSIN(G+180QW(1-L)(1÷P+WD(1-L))÷π)+
ASIN(G+180QW(1-K)(1÷P+WD(1-K))÷π))→Y:
G+180QW(1÷P+WD)÷π→F
S—O(放线主程序)
Deg:Fix3
LbI7:“XC=”?C:“YC=”?E
LbI1:“XL=1,2”?N
IF N=0:THEN“X0=”?U:“Y0=”?V:“F0=”?G: “R1=”“R2=” ?R: “DK1=” ?О: “DK2=” ?H:
“L(-1),R(+1),Z(0)” ?Q: Ifend
LbI 0: “ZHUANG HAO=” ?S: “KUAN DU=” ?Z:LbI8:
IF N=0:THEN GOTO2:Ifend
IF N=1:THEN Prog“1”:GOTO2:Ifend
IF N=2:THEN Prog“2”:GOTO2:Ifend
2
?P:
IF N=3:THEN Prog“3”:GOTO2:Ifend
……………………………………………
GOTO1
LbI2: IF S<О-0.001:THEN GOTO1: Ifend
IF S>H+0.001:THEN GOTO1: Ifend
(P-R)÷(2PR(H-О)) →D: Abs(S-О) → W:Prog“SUB1”IF Z=1000:THEN GOTO 5: Ifend
IF Z≠0:THEN GOTO 3: Ifend
“XS=” X▲ “YS=” Y▲
IF F<0:THEN F+360 →F: Ifend
“QX-FWJ=” F◣DMS▲
LbI4: 0→I: 0→J:PoI(X-C,Y-E):
IF J<0:THEN :J=J+360: Ifend
“FWJ=”:J◣DMS▲ “HD=”:I▲GOTO 0
3
Lb13: “PJ=”? M: F+M→F: X+ZCOSF→X▲Y+ZSINF →Y▲Goto4
Lb1 5:Deg
0→J: 0→I:PoI(X-C,Y-E+0.00001Ran#):
IF J<0:THEN :J=J+360: Ifend
IF Abs(Icos(J-F))<0.010:THEN Goto6: Ifend
S-Icos(J-F) →S:Goto8
Lb16: 0→Z:”JISUANZH=” :S▲
IF J-F=0 OR J-F=180:THEN ”ZX--PT”:I▲
Goto7: Ifend
IF J-F>0 AND J-F<180 OR J-F<-180:THEN ”L=m” :I▲
Goto7: Else ”R=m” :I▲Goto7: Ifend
1 (1为线路名称,预装要素子程序)
IF S>线元起点里程 AND S≤线元终点里程:THEN 线元起点x坐标→U: 线元起点y坐标→V: 线元起点方位角→G:线元起点半径(直缓点、缓直点半径为1045) →P: 线元终点半径(直缓点、缓直点半径为1045) → R:线元起点里程→O: 线元终点里程→H: (左转为-1,右转为+1,直线为0) →Q: Ifend
4
IF S>线元起点里程 AND S≤线元终点里程:THEN =>线元起点x坐标→U: 线元起点y坐标→V: 线元起点方位角→G: =线元起点半径(直缓点、缓直点半径为1045) →P: 线元终点半径(直缓点、缓直点半径为1045) → R:线元起点里程→O: 线元终点里程→H: (左转为-1,右转为+1,直线为0) →Q: Ifend
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
“MEI YOU XIAN LU ? –STOP”
Stop
(没有线路数据,自动停止)
2 (2为线路名称,预装要素子程序)
IF S>线元起点里程 AND S≤线元终点里程:THEN 线元起点x坐标→U: 线元起点y坐标→V: 线元起点方位角→G: =线元起点半径(直缓点、缓直点半径为1045) →P: 线元终点半径(直缓点、缓直点半径为1045) → R:线元起点里程→O: 线元终点里程→H: (左转为-1,右转为+1,直线为0) →Q: Ifend
IF S>线元起点里程 AND S≤线元终点里程:THEN =>线元起点x坐标→U: 线元起点y坐标→V: 线元起点方位角→G: =线元起点半径(直缓点、缓直点半径为1045) →P: 线元终点半径(直缓点、缓直点半径为1045) → R:线元起点里程→O: 线元终点里程→H: (左转为-1,右转为+1,直线为0) →Q: Ifend
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
(最后一行如下)
“MEI YOU XIAN LU ? –STOP”
5
Stop
(没有线路数据,自动停止)
程序中符号的意义
U——曲线元起点A的x坐标;
V——曲线元起点A的y坐标;
G——曲线元起点A切线的坐标方位角;(缓园点、园缓点及其他线元起算点坐标、切线方位角可按本程序逐段计算)
P——曲线元起点A的曲率半径;
R——曲线元终点B的曲率半径;
O——曲线元起点A的里程;
H——曲线元终点B的里程;
S——曲线元上待求点i的里程;
Q——曲线元偏向(左偏时取-1,右偏时取1,直线0);
X——中线点位纵坐标;
6
Y——中线点位横坐标;
注:直线、直缓点、缓直点曲率半径输入1045。
计算开始时运行“S-O”主程序,
XC=? 输入测站点X坐标,
YC=? 输入测站点Y坐标,
XL=? 输入线路编号(即线路要素子程序名称),
显示ZHUAN GHAO=时输入桩号,
显示KUANDU=时输入左右偏距(左-,右+,输入1000时计算程序开始计算输入点PT(XC,YC)对应线路桩号和偏距)。
显示PJ=时输入线路右前角,
XS=显示值为待求点x坐标,
XY=显示值为待求点Y坐标,
QX-FWJ=显示值为待求点切线方位角。
PT(XC,YC)为测站点时,
7
FWJ=显示值为放样方位角,
HD=显示值为放样距离
2011-7-7
8