大地坐标转换成施工坐标公式修订稿.docx
《大地坐标转换成施工坐标公式修订稿.docx》由会员分享,可在线阅读,更多相关《大地坐标转换成施工坐标公式修订稿.docx(20页珍藏版)》请在冰点文库上搜索。
大地坐标转换成施工坐标公式修订稿
Coca-colastandardizationoffice【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】
大地坐标转换成施工坐标公式
大地(高斯平面)坐标系工程坐标系转换
大地坐标系--->工程坐标系?
========================
待转换点为P,大地坐标为:
Xp、Yp?
工程坐标系原点o:
大地坐标:
Xo、Yo
工程坐标:
xo、yo
工程坐标系x轴之大地方位角:
adX=Xp-XodY=Yp-YoP点转换后之工程坐标为xp、yp:
xp=dX*COS(a)+dY*SIN(a)+xoyp=-dX*SIN(a)+dY*COS(a)+yo
工程坐标系--->大地坐标系========================
待转换点为P,工程坐标为:
xp、yp
工程坐标系原点o:
大地坐标:
Xo、Yo
工程坐标:
xo、yo
工程坐标系x轴之大地方位角:
adx=xp-xody=yp-yoP点转换后之工程坐标为xp、yp:
xp=Xo+dx*COS(a)-dy*SIN(a)yp=Yo+dx*SIN(a)+dy*COS(a)
坐标方位角计算程序
置镜点坐标:
ZX?
ZY
后视点坐标:
HXHY
方位角:
W
两点间距离:
S
Lb10←
{A,B,C,D}←
A〝ZX=〞:
B〝ZY=〞:
C〝HX=〞:
D〝HY=〞:
W=tg1((D-B)÷(C-A)):
(D-B)>0=>(C-A)>0=>W=W:
∟∟(D-B)>0=>(C-A)<0=>W=W+180:
∟∟(D-B)<0=>(C-A)<0=>W=W+180:
∟∟(D-B)<0=>(C-A)>0=>W=360+W∟∟W=W◢
S=√((D-B)2+(C-A)2)
◢
Goto?
0←
CASIO?
fx-4500p坐标计算程序
根据坐标计算方位角
W=W+360△W:
“ALF(1~2)=”L1?
A“X1=”:
B“Y1=”:
Pol(C“X2”-A,D“Y2”-B:
“S=”▲W<0
直线段坐标计算
L1X“X(0)”:
Y“Y(0)”:
S“S(0)”:
A“ALF”
L2Lb12
L3{L}:
L“LX”
L4M“X(Z)”=X+(L-S)cosA▲
L5?
N“Y(Z)”=Y+(L-S)sinA▲
L6{
B}:
B“B(L)”:
Q“Q”
L7?
O“X(L)”=M+Bcos(A+Q+180)▲
L8?
P“Y(L)”=N+Bsin(A+Q+180)▲
L9{
C}:
C“B(R)”
L10?
U“X(R)”=M+Ccos(A+Q)▲
L11?
V“Y(R)”=N+Csin(A+Q)▲
L12Goto2
园曲线段坐标计算
L1S“S(0)-Km”:
X“X(0)”:
Y“Y(0)”:
A“ALF”:
R“R”:
K“K(L=1,R=2)”
L2Lb12
L3{L}:
L“L(X)”
L4V=180/π×(L-S)/R:
W=V/2
L5C=A+(-1)K×W:
D=2RsinW:
F=A+(-1)K×V
L6M“X(Z)”=X+DcosC▲
L7?
N“Y(Z)”=Y+DsinC▲
L8{
E}:
E“B(L)”:
Q“Q”
L9?
O“X(L)”=M+Ecos(F+Q+180)▲
L10?
P“Y(L)”=N+Esin(F+Q+180)▲
L11{
G}:
G“B(R)”
L12?
T“X(R)”=M+Gcos(F+Q)▲
L13?
U“Y(R)”=N+Gsin(F+Q)▲
L14Goto2
正向缓和曲线段坐标计算
L1S“ZH-Km”:
X“X(ZH)”:
Y“Y(ZH)”:
A“ALF”:
R“R”:
H“LS”:
K“K(L=1,R=2)”
L2Lb12
L3{L}:
L“L(X)”
L4D=30(L-S)2/π/R/H:
C=L-S-(L-S)5/90/(R×H)2:
B=A+D(-1)K:
E=A+3D(-1)K
L5U“X(Z)”=X+CcosB▲
L6?
V“Y(Z)”=Y+CsinB▲
L7{
G}:
G“B(L)”:
Q“Q”
L8?
F“X(L)”=U+Gcos(E+Q+180)▲
L9?
I“Y(L)”=V+Gsin(E+Q+180)▲
L10{
J}:
J“B(R)”
L11?
M“X(R)”=U+Jcos(E+Q)▲
L12?
N“Y(R)”=V+jsin(E+Q)▲
L13Goto2
卵形曲线坐标计算
X=1,D=2)”L1?
S“Km-YH”:
E“X(YH)”:
F“Y(YH)”:
G“ALF”:
B“R1”:
D“A”:
K“K(L=1,R=2)”:
Q“R1-R2
L2Lb12
L3{Z}:
Z“L(X)”
L4J“L1”=D2/B:
R“RP”=D2B/(D2+(-1)Q(Z-S)B):
L“LP”=D2/R
L5M=(L-J)-(L5-J5)/40/D4+(L9-J9)/3456/D8
L6?
N=(L3-J3)/6/D2-(L7-J7)/336/D6+(L11-J11)/42240/D10
L7T=G-(-1)Q(-1)K×J2×90/D2/π
L8X“X(Z)”=E+(-1)QMcosT-(-1)KNsinT▲
L9?
Y“Y(Z)”=F+(-1)QMsinT+(-1)KNcosT▲
L10?
A“ALF(P)”=G+(-1)K(Z-S)×90×(1/B+1/R)/π
L11{H}:
H“B(L)”:
U“Q”
L12W“X(L)”=X+Hcos(A+U+180)▲
L13?
V“Y(L)”=Y+Hsin(A+U+180)▲
L14{
C}:
C“B(R)”
L15?
I“X(R)”=X+Ccos(A+U)▲
L16?
P“Y(R)”=Y+Csin(A+U)▲
L17Goto2
公路逐桩坐标计算4800程序
公路逐桩坐标计算程序
(可以计算对称、不对称缓和曲线)
Lb1?
0
Z=
V=
W=V+2:
Fixm
{K}
Lb11
K>Z[W+5Z+4]=>W=W+1:
Goto1⊿(判断桩号在哪个交点范围,就是该交点曲线起点至下一交点曲线起点)
S=K-Z[W+5Z+3](计算该桩号与曲线起点的距离)
R=Z[W+2Z+2]:
L=Z[W+3Z+2]:
E=Z[W+4Z+2](读取该交点曲线要素R、Ls1、Ls2)
Pol(Z[W]-Z[W-1],Z[W+Z+2]-Z[W+Z+1])(计算该交点与下一交点直线方位角)
J<0=>J=J+360⊿
A=J
Pol(Z[W-1]-Z[W-2],Z[W+Z+1]-Z[W+Z])
(计算该交点与上一交点直线方位角)
J<0=>J=J+360⊿
C=A-J:
A=J?
(计算偏角)
W=V+2=>Goto2⊿(如果桩号在起点与第一交点曲线起点之间,则转Lb12)
I=Abs(tan(c÷2))
M=L÷2-L^3÷240R^2:
N=E÷2-E^3÷240R^2
P=L^2÷6R-L^4÷336R^3-R(1-cos(90L÷πR))
Q=E^2÷6R-E^4÷336R^3-R(1-cos(90E÷πR))
D=(P-Q)I÷2:
F=(P+Q+2R)I÷2
M=F+M-D:
Q=F+N+D
N=πRAbsC÷180+(L+E)÷2
X=Z[W-1]-McosA
Y=Z[W+Z+1]-MsinA
M=Z[W-1]+Qcos(A+C)
V=Z[W+Z+1]+Qsin(A+C)
Q=AbsC÷C
S≤L=>P=0:
Goto3⊿(如果桩号在第一缓和曲线内,则转Lb13)
S≤N-E=>S=S-L:
Goto4⊿(如果桩号在圆曲线内,则转Lb14)
S≤N=>S=N-S
Q=-Q:
A=A+C-180:
X=M:
Y=V:
L=E:
P=180:
Goto3⊿(如果桩号在第二缓和曲线内,则转Lb13)
P=A+C:
S=S-N:
D=M+ScosP:
F=V+SsinP
Goto6(如果桩号在直线内,则转Lb16)
Lb12
P=A+C
D=Z[W-1]+ScosP
F=Z[W+Z+1]+SsinP:
Goto6
Lb1?
3
I=S-S^5÷40R^2÷L^2+S^9÷3456R^4÷L^4
J=Q(S^3÷6RL-S^7÷336R^3÷L^3)
P=P+A+90QS^2÷πRL:
Goto5
Lb1?
4
M=90(2S+L)÷πR
I=RsinM+L÷2-L^3÷240R^2
J=Q(L^2÷24R+R(1-cosM))
P=A+QM
Lb1?
5
D=X+IcosA-jsinA:
F=Y+JcosA+IsinA
Lb16
D″X=″◢(结果显示X坐标)
F″Y=″◢(结果显示Y坐标)
P″AT=″◢(结果显示该桩号方位角)
{BO}:
B″S″O″⊿″
(输入边桩距离,交角)
P=P+O
L″XB″=D+BcosP◢(结果显示边桩X坐标)
M″YB″=F+BsinP◢(结果显示边桩Y坐标)
以上是坐标计算程序,括号内是程序计算的大致原理及说明,中间部分为直线、圆曲线、缓和曲线计算的各种公式,大家也知道,书上也有。
该程序是最基本的,如再加几条语句就可以处理断链。
该程序还需变量输入,把整条线路曲线要素一次输入到4800中,就可以计算线路任意中、边桩坐标。
曲线任意里程中边桩坐标正反算(CASIOfx-4800P计算器)程序
曲线任意里程中边桩坐标正反算(CASIOfx-4800P计算器)程序
一、程序功能
本程序由一个主程序(TYQXjs)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。
本程序也可以在CASIOfx-4500P计算器及CASIOfx-4850P计算器上运行。
二、源程序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=>Goto1:
≠>Goto2Δ←┘
Lbl?
1:
{SZ}:
SZ:
W=Abs(S-O):
Prog?
"SUB1":
X"XS"=X◢
Y"YS"=Y◢
Goto?
1←┘
Lbl?
2:
{XY}:
XY:
I=X:
J=Y:
Prog?
"SUB2":
S"S"=O+W◢
Z"Z"=Z◢
Goto2
2.正算子程序(SUB1)
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:
Lbl0:
Prog"SUB1":
L=T+QEW(C+
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
三、使用说明
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、起点坐标X0Y0、起点切线方位角F0、线元长度
LS、起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q)如下:
S0X0Y0F0LSR0RNQ
125161E451E450
125161E45-1
12025-1
9117-1
80401E451E450
1、正算
(注意:
略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
S=700Z=-5计算得XS=YS=
S=700Z=0计算得XS=YS=
S=700Z=5计算得XS=YS=
S=780Z=-5计算得XS=YS=
S=780Z=0计算得XS=YS=
S=780Z=5计算得XS=YS=
S=870Z=-5计算得XS=YS=
S=870Z=0计算得XS=YS=
S=870Z=5计算得XS=YS=
S=940Z=计算得XS=19741.59118YS=
S=940Z=0计算得XS=YS=
S=940Z=计算得XS=YS=
2、反算
X=Y=计算得S=Z=-5.00018164
X=Y=计算得S=Z=
?
X=Y=计算得S=Z=
?
X=Y=计算得S=Z=-5.000001663
X=Y=计算得S=Z=-
X=Y=计算得S=Z=-
?
X=Y=计算得S=Z=-
?
X=Y=计算得S=Z=
?
[point=10][/point]
自己写的fx-4800小程序
一、ZBFS(坐标反算)
二、NEXY,
三、Fixm。
四、F,
五、Pol(N-X,E-Y)。
六、J≥0→J=J?
。
七、≠→J≤0→J=J+360?
。
八、
九、说明:
“,”表示回车符;“。
”表示终止符。
十、
十一、二、ZBFS-2(坐标反算)
十二、NEXY,
十三、Pol(N-X,E-Y)。
十四、J≥0→J=J?
。
十五、≠→J≤0→J=J+360?
。
十六、S=I。
十七、R=J。
十八、
十九、说明:
“,”表示回车符;“。
”表示终止符。
二十、
二十一、三、ZBZS(坐标正算)
二十二、
二十三、SRXY,
二十四、V=X+Rec(S,R),
二十五、W=Y+J,
二十六、N=V。
二十七、E=W
用全站仪测设公路中桩和边桩程序
程序说明:
本程序用于用全站仪测设中桩和边桩,采用坐标变换的方法编制而成,在使用fx-4500计算器时,可直接输入以下程序便可使用;而在使用fx-4800计算器时,见fx-4800程序清单。
注意:
因程序的0(零)和O易混淆,所以字母O用较大的全角符号,零仍用标准字。
程序输入时应连续输入,无空格。
而且输入时文件名需和给出的一样,否则会出现调用文件错误。
变量说明:
<程序运算符定义>
X输入摆站点的x坐标C输入第一个曲线角桩x坐标I输入中间曲线角桩的x坐标
Y输入摆站点的y坐标D输入第一个曲线角桩y坐标J输入中间曲线角桩的y坐标
E最后一个曲线角桩x坐标R中间曲线半径L中间曲线缓和曲线长
F最后一个曲线角桩y坐标K第一个K为中间角桩桩号S中间角桩曲线总长,检验用
K第二个K为要测设的桩号B测中桩时输入0,测边桩时输入宽度(左输负值,右输正值)
程序清单
注释
文件:
F1文件名:
1
L1
L2
L3
Defm8
XYCDIJEFRLK:
Fixm:
Z[2]=0:
ProgB
Z[5]=0.5L-LXy3/240R2:
Z[3]=Z[5]+(R+L2/24R)AbstanT┛2:
Z=K-Ans:
S=RAbsTπ/180+L:
S◢H=Z+Ans:
G=RL:
Prog?
2
文件:
F2文件名:
2
L1
Lbl0:
Fixm:
{K}
L2
Lbl6:
{B}:
Norm:
K(-1)XyZ[2]>(H-L)(-1)XyZ[2]=>Goto4⊿Frac?
Z[2]┛2=0=>Z[6]=Z:
≠>Z[6]=H⊿A=90T/AbsT
L3
B<0=>N=0:
≠>N=1⊿B=AbsB
L4
0=Abs(K-Z[6]:
K(-1)XyZ[2]>Z[6](-1)XyZ[2]=>Goto2⊿Q=Z[3]+0:
Z[4]=B
L5
B≠0=>ProgC⊿ProgD:
P=0
L6
ProgE:
Goto0
L7
Lbl2:
0≥L=>Goto?
3⊿
L8
Q=Z[3]-0+0Xy5/40G2:
Z[4]=0Xy3/6G-0Xy7/336GXy3:
ProgD:
P=B
L9
B≠0=>ProgF⊿ProgE:
Goto0
L10
Lbl3:
Q=Z[3]-Z[5]:
Z[4]=R+L2/24R:
ProgD
L11
Z[8]=U+A(2(0-L)/πR-1+L/πR):
B≠0=>Prog?
G:
≠>P=R⊿ProgE:
Goto0
L12
Lbl4:
M=C:
0=D:
C=E:
D=F:
E=M:
F=0:
Z[2]=Z[2]+1:
ProgB:
Goto6
文件:
F3文件名:
0
L1
Pol(M,0):
W<0=>W=W+360
文件:
F4文件名:
B
L1
L2
M=E-I:
0=F-J:
Prog0:
T=W:
M=I-C:
0=J-D:
Prog0:
U=W:
T=T-W
T<-180=>T=T+360⊿T>180=>T=T-360
文件:
F5文件名:
C
L1A=-90(-1)Xy(N+Z[2])
文件:
F6文件名:
D
L1Z[7]=I-QcosU+Z[4]cos(U+A):
Z[1]=J-QsinU+Z[4]sin(U+A)
文件:
F7文件名:
E
L1
L2
M=Z[7]+PcosZ[8]-X:
0=Z[1]+PsinZ[8]-Y:
Prog0
W◢Fix?
3:
V◢Norm
文件:
F8文件名:
F
L1
Z[8]=U+A+A02/πG+90+A(-1)Xy(N+Z[2])
文件:
F9文件名:
G
L1
P=R+AB(-1)Xy(N+Z[2])/90
此处L2句加入:
M+X◢0+Y◢可显示测点坐标值
CASIO4800超高及高程(源程序)
超高及高程(源程序)
L1:
R:
L“LS”:
Z“ZH”:
H“HZ”:
V“RS”:
F“I1”:
G“I2”:
O“BPH”:
N“BP”:
T=Vabs(G-F)÷2:
X“X(R+1,L-1)”:
P“P(R+,L-1)”
L2:
Lbl6:
{S}
L3:
S+T-N<0D=O+(S-N)F:
S-N<0D=O+(S-N)F-U(S-N+T)2÷2÷V:
S-N≤TD=O+(S-N)G-U(T-S+N)2÷2÷V:
D=O+(S-N)GD“H=”◢
L4:
RM=Goto1:
RM=Goto1:
L5:
Lbl1:
M≥LC=L:
Goto2:
C=M
L6:
Lbl2:
PX>0Goto3:
Goto4
L7:
Lbl4:
S≤ZI=:
Goto5:
SGoto5:
SGoto5:
SGoto5:
I=
:
Goto5
L8:
Lbl3:
Z[1]=÷(EPX+×C:
S≤Z+Z[1]I=:
Goto5:
SGoto5:
SGoto5:
SGoto5:
I=:
Goto5
L9:
Lbl5:
{B}:
W“HB”=D-IB◢
L10:
Goto6
说明:
R:
平曲线半径L“LS”:
缓和曲线长P:
偏转,Z=-1,Y=1X“XL”:
线路(Z,Y)左线=-1,右线=1Z“ZH”:
直缓点里程H“HZ”:
缓直点里程V“RS”:
竖曲线半径F“I1”:
前坡堵(带符号)G“I2”:
后坡度值(带符号)O“BPH”:
变坡点高程N“BP”:
变坡点里程T:
切线长E:
最大超高值C:
渐变段长度(LC)I:
横坡值M:
最大渐变长度(Lmax)B:
距中心距离W“HB”:
边部高程
公路中线坐标计算程序[CASIO4500]
公路中线坐标计算程序[casio4500]
ZXCLCX
Defm16
Lbl1
X=1:
{X}:
X“ZJF-1ZBF-2TT-3SJD-4P2L-5?
B2A-6”
X=1=>Prog"ZJF"△
X=2=>Prog“ZBF”△
X=3=>Prog“TT"△
X=4=>Prog“SJD"△
X=5=>Prog“P2L"△
X=6=>Prog“B2A"△
Goto1
ZBF
“-----ZXZBjs-----”:
{YD}:
Y“I1”“I2”
Y≠D=>Z=0rog“FP”:
A=B:
B=0:
Goto3△
X=0:
{TPXVWU}:
T“HJD(X+Yi)”
Lbl1
X“XJA=1”“JD(X+Yi)”:
U“JDLC”:
Y=Arg(P-T)
Y<0=>Y=Y+360△
Y“I”◢C“L”=Abs(P-T)◢
X=0=>V=P:
Goto2△
V“JDB(X+Yi)”=Arg(V-P)
D<0=>D=D+360△
D“I”◢Z“L”=Abs(V-P)◢Prog"FP":
A=B
Lbl2
W“QJD(X+Yi)”=Arg(W-V)
D<0=>D=D+360△
D“I”◢C“L”=Abs(W-V)◢
Lbl4
Prog“FP”
X=1=>B=B-A△
X=0=>A=B:
B=0:
Z=0:
E=RepP:
F=ImpP:
Goto3△
M=Rep(P-T):
N=Imp(P-T):
I=Rep(W-V):
J=Imp(W-V):
F“Y”=(MImpT÷N-IImpV÷J+RepV-RepT)÷(M÷N-I÷J)◢E“X”=M(F-ImpT)÷N+RepT◢C“L1”=√((E-RepP)2+(F-ImpP)2)◢U=U+C:
C“L2”=√((E-RepV)2+(F-ImpV)2)◢
Lbl3
X=0:
{X}:
X“ZBF(0)ZJF
(1)”
X=1=>O=Zrog"ZJF"△A=A+Brog"ZBjs"
ZBj