主程序JD—NE
LBI 1:”JDk=”?C:”JDμ=”?D:”Li”?L:”R=”?R:”JDX=”?U:”JDY=”?V:”JDA=”?A:”(+1R,-1L)”?M:”Z(+R,—L)”?B:”K=”?P:Prog:”JD—NE1″:”X=”?X”▲Y=”?Y▲
“F=”?F▲Goto 1↙
子程序JD—NE1
((R+L²÷(24R))tan(D÷2)+L÷2—L³÷(240R²)→T↙
C—T→I↙
I+L→J↙
J+πDR÷180—L→H↙
H+L→K↙
If P<I:Then U+(C-P)cos(A+180°)+Bcos(A+90°)→X↙
V+(C-P)sin(A+180°)+Bsin(A+90°)→Y↙
A→F:Return:IfEnd↙
If P>I And P<J :Then A+M×30°×(P—I)²÷(πRL)→O↙
(P—I)—(P—I)²÷(90R²)→G↙
U+Tcos(A+180°)+Gcos(O)→X↙
V+Tsin(A+180°)+Gsin(O)→Y↙
90°×(P—I)²÷(πRL)→W↙
X+Bcos(A+MW+90°)→X↙
Y+Bsin(A+MW+90°)→Y↙
A+MW→F:Return:IfEnd↙
If P>J And P<H :Then A+M×90°×(L+P—J)÷(πR)→O↙
2Rsin((P—J)×90°÷(πR))→G↙
U+Tcos(A+180°)+(L—L³÷(90R²))cos(A+M(30°×L)÷(πR))+Gcos(O)→X↙
V+Tsin(A+180°)+(L—L³÷(90R²))sin(A+M(30°×L)÷(πR))+Gcsin(O)→X↙
90°×(P—J)÷(πR)→W↙
X+Bcos(O+MW+90°)→X↙
Y+Bsin(O+MW+90°)→Y↙
O+MW→F:Return:IfEnd↙
If P>HAnd P<K :Then A+MD+180°—M×30°×(P—K)²÷(πRL)→O↙
K—P—(K—P)³÷(90R²)→G↙
U+Tcos(A+MD)+Gcos(O)→X↙
V+Tsin(A+MD)+Gsin(O)→Y↙
(P—K)²×90°÷(πRL)→W↙
X+Bcos(A+MD—MW+90°)→X↙
Y+Bsin(A+MD—MW+90°)→Y↙
A+MD—MW→F:Return:IfEnd↙
If P>K :Then U+(T+P—K)cos(A+MD)+Bcos(A+MD+90°)→X↙
V+(T+P—K)sin(A+MD)+Bsin(A+MD+90°)→Y↙
A+MD→F:Return:IfEnd↙
变量说明:
JDk——交点桩号C
JDμ——交点转角D
Li——缓和曲线长度L
R——圆曲线半径R
JDX——交点X坐标U
JDY——交点Y坐标V
JDA——交点方位角A
(+1R,—1L)——偏向M
Z(+R,—L)——(边桩到中桩距离)B
K——待求桩号P
X——待求点X坐标
Y——待求点Y坐标
F——待求点的方位角
本程序已经测试通过,第二缓和曲线起点附近有时会有1公分误差,是公式简化过程中产生的。基本和设计方面提供的坐标误差在1mm以内。公式采用网上下载的,谢谢无名师傅!