Lbl 4:"1.SZ => XY":"2.XY => SZ":?N:?S:Prog“SUB0”↙
1÷P→C: (P-R)÷(2HPR) →D:180÷∏→E:N=1 => Goto1: Goto2:↙
Lbl 1:? Z: Abs(S-O) →W:Prog "SUB1": "XS=":X◢
"YS=":Y◢F-90→F: “FS=”:F▲DMS◢:Goto4↙
Lbl 2:?X: ?Y:X→I:Y→J: Prog“SUB2”:O+W→S:“S=”:S◢“Z=”:Z◢Goto4↙
2. 正算子程序(SUB1)
0.1739274226→A: 0.3260725774→B: 0.0694318442→K: 0.3300094782→L: 1-L→F: 1-K→M:
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW
(C+FWD))+Acos(G+QEMW(C+MWD))) →X: V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))) →Y:
G+QEW(C+WD)+90→F: X+Zcos(F)→X: Y+Zsin(F)→Y
2. 反算子程序(SUB2)
G-90→T: Abs((Y-V)cosT-(X-U)sinT) →W: 0→Z:Lbl 0:Prog "SUB1":
T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L)→Z:Abs(Z)<1E-6=>Goto1: W=W+Z:Goto 0Δ←┘
Lbl 1:Z=0:Prog "SUB1": (J-Y)÷sin(F)→Z
SUB0 數據庫子程序
Goto1↙ 同時保存多個曲線時的指針
Lbl 1:IF S<***(線元終點裏程):Then***→G(線元起點方位角):***→O(線元起點裏程):***→U(線元起點X):***→V(線元起點Y):***→P(線元起點曲率半徑):***→R(線元終點曲率半徑): ***→H(線元起點至終點長度):0或1、-1→Q:Return:IfEnd↙
Lbl 1:IF S<***(線元終點裏程):Then***→G(線元起點方位角):***→O(線元起點裏程):***→U(線元起點X):***→V(線元起點Y):***→P(線元起點曲率半徑):***→R(線元終點曲率半徑): ***→H(線元起點至終點長度):0或1、-1→Q:Return:IfEnd
………………………..
為了便於解讀,每增加壹個線元增加壹行語句,每增加壹條曲線增加壹個Lbl,每增加壹個工程增加壹個文件。
三、使用說明
1、規定
(1) 以道路中線的前進方向(即裏程增大的方向)區分左右;當線元往左偏時,
Q=-1;當線元往右偏時,Q=1;當線元為直線時,Q=0。
(2) 當所求點位於中線時,Z=0;當位於中線左鍘時,Z取負值;當位於中線中線右
側時,Z取正值。
(3) 當線元為直線時,其起點、止點的曲率半徑為無窮大,以10的45次代替。
(4) 當線元為圓曲線時,無論其起點、止點與什麽線元相接,其曲率半徑均等於圓
弧的半徑。
(5) 當線元為完整緩和曲線時,起點與直線相接時,曲率半徑為無窮大,以10的45
次代替;與圓曲線相接時,曲率半徑等於圓曲線的半徑。止點與直線相接時,曲率半
徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等於圓曲線的半徑。
(6) 當線元為非完整緩和曲線時,起點與直線相接時,曲率半徑等於設計規定的
值;與圓曲線相接時,曲率半徑等於圓曲線的半徑。止點與直線相接時,曲率半徑等
於設計規定的值;與圓曲線相接時,曲率半徑等於圓曲線的半徑。
2、輸入與顯示說明
輸入部分:
1. SZ => XY
2. XY = > SZ
N ? 選擇計算方式,輸入1表示進行由裏程、邊距計算坐標 ;輸入2表示由坐標反算裏程和邊距。
S ? 正算時所求點的裏程,反算時為所求點的近似裏程,反算時輸入的近似裏程不能誇線元,若誇線元的話,需進行第二次反算,並以第壹次的結果做為近似裏程,否則反算的裏程及邊距不對, Z ?正算時所求點距中線的邊距(左側取負,值右側取正值,在中線上取零)
X ?反算時所求點的X坐標
Y ?反算時所求點的Y坐標
顯示部分:
XS=××× 正算時,計算得出的所求點的X坐標
YS=××× 正算時,計算得出的所求點的Y坐標
FS=××× 正算時,所求點對應的中線點的切線方位角
S=××× 反算時,計算得出的所求點的裏程
Z=××× 反算時,計算得出的所求點的邊距
註:。