卡西歐編程

卡西歐編程,本程式可以根據曲線段——直線、圓曲線、緩和曲線(完整或非完整型)的線元要素(起點坐標、起點里程、起點切線方位角、止點里程、起點曲率、止點曲率)及里程邊距或坐標,對該曲線段範圍內(如不在該範圍則自動轉入下一線元)任意里程中邊樁坐標進行正反算。

程式功能

本程式可以根據曲線段——直線、圓曲線、緩和曲線(完整或非完整型)的線元要素(起點坐標、起點里程、起點切線方位角、止點里程、起點曲率、止點曲率)及里程邊距或坐標,對該曲線段範圍內(如不在該範圍則自動轉入下一線元)任意里程中邊樁坐標進行正反算。

源程式

主程式(FQXZB)

1.

主程式(FQXZB)

卡西歐編程是什麼?

Lbl 0:{HR}:N:U"XA":V"YA":O"DKA":G"F0":H"DKB":P"1/RA":R"1/RB":Q:D=(R-P)/(2Abs(H-O)):E=180/π:N=1=>Goto 1:≠>Goto 4Δ←┘

Lbl 1:{SZ}:S"DKI":S>=H=>S=HΔW=Abs(S-O):Prog SUB1:X"XS"=X◢

Y"YS"=Y◢

S=H=>Goto 5←┘

Lbl 2:{Z}:Z:F=G+QEW(P+WD)+90:I"XZ"=X+ZcosF◢

J"YZ"=Y+ZsinF◢ Goto 3

Lbl 3:{C}:C:C=0=>Goto 1:≠>Goto 2Δ

Lbl 4:{XY}:XY:I=X:J=Y:Prog SUB2:S"S"=O+W◢

Z"Z"=Z◢

Goto 4

Lbl 5:U=X:V=Y:O=H:G=G+180Q(WD+P)W/π:P=R

Goto 0

2. 子程式(SUB1)

A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:M=1-K:C=G+QEMW(P+MWD):X=U+W(Acos(G+QEKW(P+KWD))+Bcos(G+QELW(P+LWD))+Bcos(G+QEFW(P+FWD))+Acos C):Y=V+W(Asin(G+QEKW(P+KWD))+Bsin(G+QELW(P+LWD))+Bsin(G+QEFW(P+FWD))+Asin C)

3. 子程式(SUB2)

T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl 0:Prog SUB3:L=T+QEW(P+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto 0Δ←┘Lbl 1:Z=0:Prog SUB3:Z=(J-Y)÷sinF

4. 子程式(SUB3)

Prog SUB1:F=G+QEW(P+WD)+90:X=X+ZcosF:Y=Y+ZsinF

使用說明

1、規定

(1) 以道路中線的前進方向(即里程增大的方向)區分左右;當線元往左偏時,Q=-1;當線元往右偏時,Q=1;當線元為直線時,Q=0。

(2) 當所求點位於中線時,Z=0;當位於中線左鍘時,Z取負值;當位於中線中線右側時,Z取正值。

(3) 當線元為直線時,其起點、止點的曲率為0。

(4) 當線元為圓曲線時,無論其起點、止點與什麼線元相接,其曲率均等於圓弧的半徑的倒數。

(5) 當線元為完整緩和曲線時,起點與直線相接時,曲率為0;與圓曲線相接時,曲率等於圓曲線的半徑的倒數。止點與直線相接時,曲率為0;與圓曲線相接時,曲率等於圓曲線的半徑的倒數。

(6) 當線元為非完整緩和曲線時,起點與直線相接時,曲率等於設計規定的值;與圓曲線相接時,曲率等於圓曲線的半徑的倒數。止點與直線相接時,曲率等於設計規定的值;與圓曲線相接時,曲率等於圓曲線的半徑的倒數。

2、輸入與顯示說明

輸入部分:

N ? 選擇計算方式,輸入1表示進行由里程、邊距計算坐標 ;輸入非1值表示由坐標反算里程和邊距。

XA ?線元起點的X坐標

YA ?線元起點的Y坐標

DKA ?線元起點里程

F0 ?線元起點切線方位角

DKB ?線元止點里程

1/RA ?線元起點曲率

1/RB ?線元止點曲率

Q ? 線元左右偏標誌(左偏Q=-1,右偏Q=1,直線段Q=0)

DKI ? 正算時所求點的里程

Z ?正算時所求點距中線的邊距(左側取負,值右側取正值,在中線上取零)

X ?反算時所求點的X坐標

Y ?反算時所求點的Y坐標

顯示部分:

XS=××× 正算時,計算得出的所求點的X坐標

YS=××× 正算時,計算得出的所求點的Y坐標

S=××× 反算時,計算得出的所求點的里程

Z=××× 反算時,計算得出的所求點的邊距

相關詞條

熱門詞條

聯絡我們