卵曲线计算
如图1所示,卵曲线的两个圆曲线的半径分别为R1、R2,两端所加的缓和曲线长分别为Ls1、Ls2,中间缓和曲线长为Lf,线路转向角为α1+α2、交点为C,曲线主点:直缓1点:ZH1、缓1圆1点:H1Y1、圆1缓2点:Y1H2、缓2圆2点:H2Y2、圆2缓3点:Y2H3、缓3直点:H3Z。
图1
计算缓和曲线参数: 圆曲线内移量: P1= 切垂距: m1=
Ls1224?R12
P2=
Ls13240?R12Ls22
24?R2
Ls23240?R22Ls1
- m1=Ls22
-
180゜ππ180゜
缓和曲线切线角:β1=
Ls1
2?R1
?ρ β1=
Ls2
2?R2
?ρ 其中: ρ=?ρ其中: ρ=
βs1=计算曲线要素:
Ls1
2?R1
?ρ βs1=
Ls2
2?R2
t1=t2=(R1+P1)*tanAB=t2+t3 AC=
α1
2
AB?sinα2
t3=t4=(R2+P2)*tan
BC=
AB?sinα1sin(α1+α2)
α22
sin(α1+α2)
切线长:T1=t1+AC+m1 T2=t4+BC+m2 曲线长:L=Ls1+Ls2+Lf+
α1?β1?βs1
ρ
R1+
α2?β2?βs2
ρ
R2
图2
如图2
在缓和曲线 ZH'-E-F中:
l= Lf=lF-lE lE= lF= 其中c为缓和曲线半径变更率
R
R1
R2
c
c
c
所以: c=
Lf?R1?R2R1?R2
lE=
Lf?R2
R1?R2
lF=
Lf?R1
R1?R2
在坐标系X4-ZH'-Y4中 X4E= lE?Y4E=
lE3
lE540?R22?lF2
α4=
lE26?c
6?R2?lF
?
lE7336?lF3?R23
X4i= li?Y4i=
li3
li540?R22?lF2
6?R2?lF
?
li7336?lF3?R23其中li=Ki-KE+lE, Ki>KE。Ki、KE分别为i点和E点的里程 将坐标系X4-ZH'-Y4中的X4i、Y4i转换到坐标系X3-E-Y3中 cos(?α4 ) ?sin(?α4)X3iX4iX4E
[]=[] ]?[]+[Y3iY4iY4Esin(?α4) cos(?α4)X3i、Y3i近似值算法: li0=Ki-KE δ=X3i≈li0*cosδ Y3i≈li0*sinδ
将坐标系X3-E-Y3中的X3i、Y3i转换到坐标系X1-ZH1-Y1中 X1E=m1+R1*sin(β1+
LE?Ls1R1
(3?lE+li0)?li0
6?c
?ρ)
R1
Y1E=P1+R1*(1-cos(β1+
LE?Ls1
?ρ))
其中 LE=KE-KZH1,KE、KZH1分别为E点和ZH1点的里程 α3=α1-βs1
cos(α3 ) ?sin(α3)X3iX1iX1E[]=[] ]?[]+[Y1iY3iY1Esin(α3) cos(α3)
将坐标系X2-H3Z-Y2中的X2i、Y2i转换到坐标系X1-ZH1-Y1中 X H3Z=T1+T2*cos(α1+α2) Y H3Z= T2*sin(α1+α2) 坐标系X1-ZH1-Y1中个点的计算: X2i=-( li?Y2i=
li36?R2?Ls2
li5
40?R22?Ls22
)
?
li7
336?Ls23?R23其中 li=KH3Z-Ki,Ki、KH3Z分别为缓和曲线Ls2上i点和H3Z点的里程
X2i=-(m2+R2*sin(β2+
Li?Ls2R2
?ρ) ) ?ρ))
Y2i=P2+R2*(1-cos(β2+
Li?Ls2R2
其中 Li= KH3Z-Ki,Ki、KH3Z分别为圆2曲线上i点和ZH1点的里程
[
cos(α1+α2 ) ?sin(α1+α2 )X1iX2i
]=[]?[]Y1iY2isin(α1+α2 ) cos(α1+α2 )
+[X H3Z
] Y H3Z
坐标系X1-ZH1-Y1中个点的计算: X1i= li?Y1i=
li540?R12?Ls12 li7
li3
6?R1?Ls1
?
336?Ls13?R13
其中 li=Ki-KZH1,Ki、KZH1分别为缓和曲线Ls1上i点和ZH1点的里程
X1i=m1+R1*sin(β1+
Li?Ls1R1
?ρ)
Li?Ls1R1
Y1i=P1+R1*(1-cos(β1+
?ρ))
其中 Li=Ki-KZH1,Ki、KZH1分别为圆1曲线上i点和ZH1点的里程 将坐标系X1-ZH1-Y1中的坐标 转换到系统坐标中
cos(α0 ) ?sin(α0 )XiX1iXZH1
[]=[] ]?[]+[YiY1iYZH1sin(α0 ) cos(α0 )其中 XZH1、YZH1为ZH1点在系统坐标系中的坐标 α0为ZH1-C的方位角
自编曲线计算软件
代码:
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace 曲线计算 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
public class xy {