匝道坐标计算程序 文件名:ZD 10:INPUT”Please select the line:ZX=1,YQX=2,HHX1=3,HHX2=4”;R$ 20:IF R$=”1” GOSUB 100 30:IF R$=”2” GOSUB 200 40:IF R$=”3” GOSUB 400 50:IF R$=”4” GOSUB 600 60:END 100:REM SUBROUTINE FOR ZX 110:INPUT”F0=?”;F:F=DEG F 120:INPUT”qi dian =?”;S0 130:INPUT”X0=?”;X0,”Y0=?”;Y0 140:INPUT”zhuang hao=?”;S 150:X=X0+(S-S0)*COS F 160:Y=Y0+(S-S0)*SIN F 170:GOSUB 500 171:GOSUB 900 180:INPUT:Next point or Change line?”;R$ 182:IF R$=”N” THEN GOTO 140 184:IF R$=”C” THEN GOTO 10 190:RETURN 200:REM SUBROUTINE FOR YQX 202:INPUT”lu xian zhuan xiang:”;P 210:INPUT”R=?”;R,”F0=?”;F0:F0=DEG F0 220:INPUT”qd=?”;S0 230:INPUT”X0=?”;X0,”Y0=?”;Y0 240:INPUT”zhuang hao=?”;S 250:F=F0+P*(S-S0)*180/(PI*R) 260:X=X0+P*R*(SIN F-SIN F0) 270:Y=Y0-P*R*(COS F-COS F0) 280:GOSUB 500 281:GOSUB 900 290: INPUT:Next point or Change line?”;R$: IF R$=”N” THEN GOTO 240 ELSE IF R$=”C” THEN GOTO 10 300:RETURN 400:REM SUBROUTINE FOR HXX1 402:INPUT”lu xian zhuan xiang:”;P 404:INPUT”qd=?”;S0,”T0=?”;T0:T0=DEG T0 412:INPUT”X0=?”;X0,”Y0=?”;Y0 414:INPUT”The radio change:”;K 416:INPUT”R=”;R 418:INPUT”C=?”;C 420:INPUT”L0=?”;L0 421:INPUT”zhuang hao=?”;S 424:IF K>0 THEN LET L=L0+(S-S0) 426:IF K<0 THEN LET L=L0-(S-S0) 427:T=T0-P*K*L0^2/(2*C)*180/PI 428:A=(L-L0)-(L^5-L0^5)/(40*C^2)+(L^9-L0^9)/(3456*C^4) 430:B=(L^3-L0^3)/(6*C)-(L^7-L0^7)/(336*C^3) 432:X=X0+K*A*COS T-P*B*SIN T 434:Y=Y0+K*A*SIN T+P*B*COS T 435:F=T+P*K*90*(L0-(S-S0))^2/(PI*C) 436:GOSUB 500 437:GOSUB 900 450: INPUT:Next point or Change line?”;R$: IF R$=”N” THEN GOTO 421 ELSE IF R$=”C” THEN GOTO 10 460:RETURN 500:REM SUBROUTINE FOR ZSC 512:USING “########.###” 520:PRINT”zhuang hao=”;S 530:PRINT”X=”;MDF X 540:PRINT”Y=”;MDF Y 550: USING “####.####” 560:PRINT”F=”;MDF (DMS F) 570:RETURN 600:REM SUBROUTINE FOR HHX2 610:INPUT”lu xian zhuan xiang:”;P 630:INPUT”qd=?”;S0,”T0=?”;T0:T0=DEG T0 640:INPUT”X0=?”;X0,”Y0=?”;Y0 650:INPUT”zd=?”;S1 660:INPUT”The radio change:”;K 670:INPUT”R1=?”;R1,”R2=?”;R2 680:C=ABS((S1-S0)R1*R2/(R1-R2)) 690:RE=R1*R2/(R1+R2) 692:L0=C/R1 700:INPUT”zhuang hao=?”;S 710:IF K>0 THEN LET L=L0+(S-S0) 720:IF K<0 THEN LET L=L0-(S-S0) 730:T=T0-P*K*L0^2/(2*C)*180/PI 740:A=(L-L0)-(L^5-L0^5)/(40*C^2)+(L^9-L0^9)/(3456*C^4) 750:B=(L^3-L0^3)/(6*C)-(L^7-L0^7)/(336*C^3) 760:X=X0+K*A*COS T-P*B*SIN T 770:Y=Y0+K*A*SIN T+P*B*COS T 780:F=T0+P*(S-S0)*180/(2*PI*RE) 790:GOSUB 500 791:GOSUB 900 800:INPUT:Next point or Change line?”;R$: IF R$=”N”THEN GOTO 700 ELSE IF R$=”C” THEN GOTO 10 810:RETURN 900:REM SUBROUTINE FOR BSC 910:IF F>=360 THEN LET F=F-360 ELSE IF F<0 THEN LET F=F-360 940:INPUT”width=?”;W 950:LET J=1 960:IF W=0 THEN 1040 970:IF W<0 THEN LET J=-J 980:XW=X+J*W*COS (F+J*90):YW=Y+J*W*SIN (F+J*90) 990:USING”#######.###” 1000:PRINT”width=”;W 1010:PRINT”XW=”;MDF XW 1020:PRINT”YW=”;MDF YW 1030:GOTO 940 1040:RETURN
本程序采用线元法计算匝道中桩坐标,然后根据需要计算边桩坐标 ZX指直线段 YQX指圆曲线 HHX1指回旋线,如ZH-HY,起点-HY,YH-终点,GQ-HY,YH-GQ等 HHX2指YH-HY间的回旋线,也就是连接两个不同半径间的回旋线 本程序的难点在于L0的输入和C的输入及K(曲率变化率)的判断
T0:起点方位角 X0;Y0计算起点坐标
|