最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

4850线元法 任意曲线坐标正反算【通过验算】

IT圈 admin 32浏览 0评论

2024年5月8日发(作者:竹笛)

曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序

一、程序功能

本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲

线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里

程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的

程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。

特别申明: 适用于弧长小于2倍半径的各种线元坐标正反算,精度优于1mm;

二、源程序

1.主程序(TYQXJS)

" => XY":" => SZ":N:U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"

RN":Q:C=1÷P:D=(P-R)÷(2HPR):E=180÷π:N=1=>Goto 1:≠>Goto 2Δ←┘

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

Y"YS"=Y◢

F"FS"=F-90◢

Goto 1←┘

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

Z"Z"=Z◢

Goto 2

2. 正算子程序(SUB1)

A=0.1739274226:B=0.3260725774:K=0.:L=0.3300094782:F=1-L:

M=1-K:X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW

(C+FWD))+Acos(G+QEMW(C+MWD))):Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+

QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):F=G+QEW(C+

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+QEW(C+

WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<0.000001=>Goto1:≠>W=W+Z:Goto 0Δ←┘

Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF

三、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,

Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右

侧时,Z取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆

弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45

次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半

径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的

值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等

于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明

输入部分:

1. SZ => XY

2. XY = > SZ

N ? 选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算

里程和边距。

X0 ?线元起点的X坐标

Y0 ?线元起点的Y坐标

S0 ?线元起点里程

F0 ?线元起点切线方位角

LS ?线元长度

R0 ?线元起点曲率半径

RN ?线元止点曲率半径

Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)

S ? 正算时所求点的里程

Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)

X ?反算时所求点的X坐标

Y ?反算时所求点的Y坐标

显示部分:

XS=××× 正算时,计算得出的所求点的X坐标

YS=××× 正算时,计算得出的所求点的Y坐标

S=××× 反算时,计算得出的所求点的里程

Z=××× 反算时,计算得出的所求点的边距

四、算例 (据有些网友反映后面的算例数据不正确,但本程序绝对完全正确。)

某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组

成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度

LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下:

线元要素 S0 X0 Y0 F0 LS

直线 500.000 19942.837 28343.561 125°16′31.00″ 269.256

完整缓曲 769.256 19787.340 28563.378 125°16′31.00″ 37.492

圆曲线 806.748 19766.566 28594.574 120°25′54.07″ 112.779

非完整缓曲919.527 19736.072 28701.893 91°17′30.63″ 80.285

R0 RN

1E45

221.75

221.75

221.75 9579.228

Q

0

1E45

1E45 -1

221.75 -1

-1

直线 999.812 19744.038 28781.659 80°40′50.00″ 100.000 1E45 1E45 0

1、正算

(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元要素)

直线段:

S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590

S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837

S=700 Z= 5 计算得 XS=19823.25398 YS=28503.95084

完整缓和曲线段:

S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270

S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358

S=780 Z= 5 计算得 XS=19777.05373 YS=28569.30446

圆曲线段:

S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091

S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379

S=870 Z= 5 计算得 XS=19737.83688 YS=28651.69668

非完整缓和曲线段:

S=940 Z=-5.123 计算得 XS=19741. 59118 YS=28722.05802

S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642

S=940 Z= 3.009 计算得 XS=19733.47298 YS=28722.53168

2、 反算

直线段:

X=19831.418 Y=28509.726 计算得 S=699.9999974 Z= -5 .00018164

X=19827.336 Y=28506.838 计算得 S=699.9996493 Z= 0.000145136

X=19823.25398 Y=28503.95084 计算得 S=699.9999985 Z= 5.000003137

完整缓和曲线段:

X=19785.25749 Y=28575.02270 计算得 S=780.0000035 Z= -5 .000001663

X=19781.15561 Y=28572.16358 计算得 S=780.0000025 Z=- 0.000002979

X=19777.05373 Y=28569.30446 计算得 S=780.0000016 Z= 4.99999578

圆曲线段:

X=19747.536 Y=28654.131 计算得 S=870.0001137 Z= -4.99941049

X=19742.686 Y=28652.914 计算得 S=870.0003175 Z=- 0.00041814

X=19737.837 Y=28651.697 计算得 S=870.0002748 Z= 4.999808656

非完整缓和曲线段:

X=19741.5912 Y=28722.0580 计算得 S=939.9999786 Z= -5.123024937

X=19736.4769 Y=28722.3564 计算得 S=939.9999862 Z=- 0.000027710

X=19733.4730 Y=28722.5317 计算得 S=940.0000238 Z= 3.00898694

2024年5月8日发(作者:竹笛)

曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序

一、程序功能

本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲

线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里

程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的

程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。

特别申明: 适用于弧长小于2倍半径的各种线元坐标正反算,精度优于1mm;

二、源程序

1.主程序(TYQXJS)

" => XY":" => SZ":N:U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"

RN":Q:C=1÷P:D=(P-R)÷(2HPR):E=180÷π:N=1=>Goto 1:≠>Goto 2Δ←┘

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

Y"YS"=Y◢

F"FS"=F-90◢

Goto 1←┘

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

Z"Z"=Z◢

Goto 2

2. 正算子程序(SUB1)

A=0.1739274226:B=0.3260725774:K=0.:L=0.3300094782:F=1-L:

M=1-K:X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW

(C+FWD))+Acos(G+QEMW(C+MWD))):Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+

QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):F=G+QEW(C+

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+QEW(C+

WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<0.000001=>Goto1:≠>W=W+Z:Goto 0Δ←┘

Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF

三、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,

Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右

侧时,Z取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆

弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45

次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半

径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的

值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等

于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明

输入部分:

1. SZ => XY

2. XY = > SZ

N ? 选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算

里程和边距。

X0 ?线元起点的X坐标

Y0 ?线元起点的Y坐标

S0 ?线元起点里程

F0 ?线元起点切线方位角

LS ?线元长度

R0 ?线元起点曲率半径

RN ?线元止点曲率半径

Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)

S ? 正算时所求点的里程

Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)

X ?反算时所求点的X坐标

Y ?反算时所求点的Y坐标

显示部分:

XS=××× 正算时,计算得出的所求点的X坐标

YS=××× 正算时,计算得出的所求点的Y坐标

S=××× 反算时,计算得出的所求点的里程

Z=××× 反算时,计算得出的所求点的边距

四、算例 (据有些网友反映后面的算例数据不正确,但本程序绝对完全正确。)

某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组

成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度

LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下:

线元要素 S0 X0 Y0 F0 LS

直线 500.000 19942.837 28343.561 125°16′31.00″ 269.256

完整缓曲 769.256 19787.340 28563.378 125°16′31.00″ 37.492

圆曲线 806.748 19766.566 28594.574 120°25′54.07″ 112.779

非完整缓曲919.527 19736.072 28701.893 91°17′30.63″ 80.285

R0 RN

1E45

221.75

221.75

221.75 9579.228

Q

0

1E45

1E45 -1

221.75 -1

-1

直线 999.812 19744.038 28781.659 80°40′50.00″ 100.000 1E45 1E45 0

1、正算

(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元要素)

直线段:

S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590

S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837

S=700 Z= 5 计算得 XS=19823.25398 YS=28503.95084

完整缓和曲线段:

S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270

S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358

S=780 Z= 5 计算得 XS=19777.05373 YS=28569.30446

圆曲线段:

S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091

S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379

S=870 Z= 5 计算得 XS=19737.83688 YS=28651.69668

非完整缓和曲线段:

S=940 Z=-5.123 计算得 XS=19741. 59118 YS=28722.05802

S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642

S=940 Z= 3.009 计算得 XS=19733.47298 YS=28722.53168

2、 反算

直线段:

X=19831.418 Y=28509.726 计算得 S=699.9999974 Z= -5 .00018164

X=19827.336 Y=28506.838 计算得 S=699.9996493 Z= 0.000145136

X=19823.25398 Y=28503.95084 计算得 S=699.9999985 Z= 5.000003137

完整缓和曲线段:

X=19785.25749 Y=28575.02270 计算得 S=780.0000035 Z= -5 .000001663

X=19781.15561 Y=28572.16358 计算得 S=780.0000025 Z=- 0.000002979

X=19777.05373 Y=28569.30446 计算得 S=780.0000016 Z= 4.99999578

圆曲线段:

X=19747.536 Y=28654.131 计算得 S=870.0001137 Z= -4.99941049

X=19742.686 Y=28652.914 计算得 S=870.0003175 Z=- 0.00041814

X=19737.837 Y=28651.697 计算得 S=870.0002748 Z= 4.999808656

非完整缓和曲线段:

X=19741.5912 Y=28722.0580 计算得 S=939.9999786 Z= -5.123024937

X=19736.4769 Y=28722.3564 计算得 S=939.9999862 Z=- 0.000027710

X=19733.4730 Y=28722.5317 计算得 S=940.0000238 Z= 3.00898694

发布评论

评论列表 (0)

  1. 暂无评论