各位同行,本人領(lǐng)悟yshf的程序后,進(jìn)行了以下改編,達(dá)到以下目標(biāo):
1.加編數(shù)據(jù)庫(kù),計(jì)算中不必逐項(xiàng)輸入"線元要素",提高運(yùn)算速度,避免現(xiàn)場(chǎng)忙中出錯(cuò)
2.計(jì)算直觀,人性化
3.正算直接輸入里程和邊距,反算輸入近似里程便可
4.增加了“計(jì)算點(diǎn)與測(cè)站點(diǎn)”的距離和方位角計(jì)算語(yǔ)句,方便直接放樣
5.愿收獲與大家共享
一.改動(dòng)后的程序清單:
1.主程序(TYQXJS)
"1.SZ => XY":"2.XY => SZ":U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"
RN":Q:D=(P-R)÷(2HPR):N=1=>Goto 1:≠>Goto 2Δ←┘
Lbl 1:{Z}:Z:W=Abs(S-O):Prog "SUB1":X"XS"=X◢
Y"YS"=Y◢
F"FS"=F-90◢
C“XC”:E“YC”:I=0:J=0:Pol(X-C,Y-E):I“I=” ◢
J∠0=>J“J=”+360◢
≠>J“J=” ◢
ΔProg"SJK"←┘
Lbl 2:{XY}:XY:I=X:J=Y:Prog "SUB2":S"S"=O+W◢
Z"Z"=Z◢
Prog"SJK"
2. 正算子程序(SUB1) A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:
M=1-K:X=U+W(Acos(G+57.2958QKW(1/P+KWD))+Bcos(G+57.2958QLW(1/P+LWD))+Bcos(G+57.2958QFW
(1/P+FWD))+Acos(G+57.2958QMW(1/P+MWD))):Y=V+W(Asin(G+57.2958QKW(1/P+KWD))+Bsin(G+
57.2958QLW(1/P+LWD))+Bsin(G+57.2958QFW(1/P+FWD))+Asin(G+57.2958QMW(1/P+MWD))):F=G+57.2958QW(1/P+
WD)+90:X=X+ZcosF:Y=Y+ZsinF
3. 反算子程序(SUB2)
T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl 0:Prog "SUB1":L=T+Q57.2958W(1/P+
WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto 0Δ←┘
Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF
二.增設(shè)數(shù)據(jù)庫(kù)程序(SJK)
Lbo4:{S}:S∠下一線元起點(diǎn)里程≡>O=本線元起點(diǎn)里程:U=本線元起點(diǎn)X:V=本線元起點(diǎn)Y:G=本線元起算方位角:H=本線元長(zhǎng)度:P=起點(diǎn)曲率半徑:R=終點(diǎn)曲率半徑:Q=0或1、-1:Prog“TYQXJS”:Goto4Δ←┘
S∠下一線元起點(diǎn)里程=>O=。。。。。。。。。。。。。。。。。。。。。。。Prog“TYQXJS”: Goto4Δ←┘
三. 使用說明:
1.把所有相關(guān)的”線元要素“依次輸入”SJK“
2.運(yùn)算時(shí)直接調(diào)用“SJK”運(yùn)行,程序提示輸入里程“S”?時(shí),正算直接輸入待求點(diǎn)里程,反算輸入所求點(diǎn)“近似“里程
3.如果在正算中途想進(jìn)行反算,請(qǐng)退出程序,重新調(diào)用”SJK“,并重新給”N“?賦值"2"便可
4.程序中“XC、YC、”為測(cè)站坐標(biāo),“I=”、“J=”為放樣距離和方位角
5.其它輸入與"yshf"原程序一致(程序中1/P表示1÷P)