交点法与线元法.docx

上传人:b****8 文档编号:23728522 上传时间:2023-05-20 格式:DOCX 页数:17 大小:18.67KB
下载 相关 举报
交点法与线元法.docx_第1页
第1页 / 共17页
交点法与线元法.docx_第2页
第2页 / 共17页
交点法与线元法.docx_第3页
第3页 / 共17页
交点法与线元法.docx_第4页
第4页 / 共17页
交点法与线元法.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

交点法与线元法.docx

《交点法与线元法.docx》由会员分享,可在线阅读,更多相关《交点法与线元法.docx(17页珍藏版)》请在冰豆网上搜索。

交点法与线元法.docx

交点法与线元法

本人一直以来想找一个相结合的坐标正反算程序,在网上找了很久,没能找到一个较为满意的,有幸在测量空间看到大歪哥的《Casio5800交点法程序》与《线元法(积木法)匝道坐标正反算放样程序》,根据歪哥意见“需要的自行修改结合XY框架自己修改为数据库反算程序等”,本人不才,采用最笨的办法将两个程序综合了一下,使之能既能进行交点法正反算,又能进行线元法正反算。

在此特别感谢大歪哥!

将程序发上来,愿与大家一同交流学习欢迎大家吐口水,只要能进步就行!

程序由一个主程序ZBZFS和8个子程序(JS、XY-

A、XY-

B、JDYS、

1、2、

3、4)构成,运行时只需运行主程序即可!

本程序适用于单交点对称型、不对称型、无缓和曲线单圆曲线型一个交点范围内(含交点前后有直线段时)的曲线要素核对和坐标正反算,手工输入要素,对设计图纸的“直线、曲线转角表”中交点数据进行复核验证,并能对单一线元进行坐标正反算。

1主程序名:

ZBZFS(功能:

进入计算主程序)

65→Dimz↙

Deg:

Fix3↙

"1.JDZFS2.ZHADAOZFS"?

I:

I→Z[61]:

"1.ZHONGSHUJS2.JS"?

I↙IfI=1:

ThenGoto1:

ElseGoto2:

IfEnd↙

LbI1:

IfZ[61]=1:

ThenProg"JDYS":

ElseCls:

"K0"?

A:

"KN"?

L:

"X0"?

U:

"Y0"?

V:

"F0"?

W:

"R0"?

P:

"RN"?

Q:

"ZX:

-1,+1,0"?

G:

IfEnd↙

LbI2:

Prog"JS"

2子程序名:

JS(功能:

选择正算或反算模式)

Cls:

"XC"?

H:

"YC"?

Z↙

Cls:

"1.ZS2.FS"?

I:

I=2=>Goto3↙

LbI1:

Cls:

IfZ[61]=1:

Then"JDZSKX+XXX"?

K:

Prog"4":

Else"ZHADAOZSKX+XXX"?

K:

IfEnd↙

LbI2:

Cls:

90→B:

Cls:

"RJOr0ToK"?

B:

B=0=>Goto1:

"Z"?

T↙

Prog"XY-A"↙

X+Tcos(M+B)→X↙

Y+Tsin(M+B)→Y↙

360Frac((M+360)÷360→M↙

Pol(X-H,Y-Z:

360Frac((J+360)÷360→J↙

2→O:

Prog"XY-B":

Goto2↙

LbI3:

Cls:

IfZ[61]=1:

Then"JDFSKN+"?

K:

"X"?

C:

"Y"?

D:

Prog"4":

ElseCls:

"ZHADAOFS":

"X"?

C:

"Y"?

D:

IfEnd↙

LbI4:

Prog"XY-A"↙

(D-Y)sin(M)+(C-X)cos(M)→H↙

IfAbs(H)>X10-3:

ThenK+H→K:

Goto4:

IfEnd↙

(D-Y)÷cos(M)→T↙

3→O:

Prog"XY-B":

Goto3↙

3子程序名:

XY-A(功能:

坐标计算程序)

5→N:

G(Q-1-P-1)÷Abs(L-A)→F:

Abs(K-A)÷N→R:

90R÷π→S:

W+(FNR+2GP-1)NS→M:

1→E↙

U+R÷6×(Cos(W)+Cos(M)+4∑(Cos(W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos(W+((EFR+2GP-1)ES,E,1,(N-1)))→X↙

V+R÷6×(sin(W)+sin(M)+4∑(sin(W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin(W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙

4子程序名:

XY-B(功能:

显示正算或反算结果)

IfO=2:

Then↙

Cls:

"K×××=":

"Z=":

"X=":

"Y=":

Locate6,1,K:

Locate4,2,T:

Locate4,3,X:

Locate4,4,Y◢

IfT=0:

ThenCls:

"QF(Z)=":

Locate8,1,M:

M▼DMS◢

IfEnd↙

Cls:

"K×××=":

"S=":

Locate6,1,K:

Locate4,2,I:

"F=":

J:

J▼DMS◢

IfEnd↙

IfO=3:

Then"X=":

"Y=":

"K×××=":

"Z=":

Locate4,1,C:

Locate4,2,D:

Locate6,3,K:

Locate4,4,T◢

IfEnd:

Cls↙

5子程序名:

4(功能:

将交点参数转为线元计算参数)

LbI1:

IFZ[48]<0:

Then-1→Z[62]:

Else:

1→Z[62]:

IfEnd

LbI2:

IfK≥Z[57]:

ThenZ[57]→A:

Z[1]→L:

Z[23]→U:

Z[24]→V:

Z[31]→W:

10^45→P:

10^45→Q:

0→G:

IfEnd↙

LbI3:

IfK≥Z[1]:

ThenZ[1]→A:

Z[2]→L:

Z[19]→U:

Z[20]→V:

Z[29]→W:

10^45→P:

Z[46]→Q:

Z[62]→G:

IfEnd↙

LbI4:

IfK≥Z[2]:

ThenZ[2]→A:

Z[4]→L:

Z[25]→U:

Z[26]→V:

Z[32]→W:

Z[46]→P:

Z[46]→Q:

Z[62]→G:

IfEnd↙

LbI5:

fK≥Z[4]:

ThenZ[4]→A:

Z[5]→L:

Z[27]→U:

Z[28]→V:

Z[33]→W:

Z[46]→P:

10^45→Q:

Z[62]→G:

IfEnd↙

LbI6:

IfK≥Z[5]:

ThenZ[5]→A:

Z[5]+1000→L:

Z[21]→U:

Z[22]→V:

Z[30]→W:

10^45→P:

10^45→Q:

0→G:

IfEnd↙

6子程序名:

JDYS(功能:

输入交点要素、显示交点要素及主点坐标)

Cls:

"BP"?

H:

H→Z[57]:

"K(JD)"?

K:

K→Z[41]:

"X(JD)"?

X:

X→Z[42]:

"Y(JD)"?

Y:

Y→Z[43]:

"LS1"?

B:

B→Z[44]:

"LS2"?

C:

C→Z[45]:

?

R:

R→Z[46]:

"(ZH)FWJ°"?

M:

M→Z[47]:

"α(Z-,Y+)°"?

O:

O→Z[48]:

Z[47]+Z[48]→Z[49]:

Prog"1":

Prog"2"↙

Cls:

"T1=":

"T2=":

"L=":

"LY=":

Locate4,1,Z[50]:

Locate4,2,Z[51]:

Locate4,3,Z[52]:

Locate4,4,Z[53]◢

Cls:

"E=":

Locate7,1,Z[54]

Cls:

"K(QD)=":

"X=":

"Y=":

"FWJ="Locate7,1,Z[57]:

Locate7,2,Z[23]:

Locate7,3,Z[24]:

Locate7,4,Z[31]◢

Cls:

"K(ZH)=":

"X=":

"Y=":

"FWJ=":

Locate7,1,Z[1]:

Locate7,2,Z[19]:

Locate7,3,Z[20]:

Locate7,4,Z[29]◢

Cls:

"K(HY)=":

"X=":

"Y=":

"FWJ=":

Locate7,1,Z[2]:

Locate7,2,Z[25]:

Locate7,3,Z[26]:

Locate7,4,Z[32]◢

Cls:

"K(QZ)=":

Locate7,1,Z[3]◢

Cls:

"K(YH)=":

"X=":

"Y=":

"FWJ=":

Locate7,1,Z[4]:

Locate7,2,Z[27]:

Locate7,3,Z[28]:

Locate7,4,Z[33]◢

Cls:

"K(HZ)=":

"X=":

"Y=":

"FWJ=":

Locate7,1,Z[5]:

Locate7,2,Z[21]:

Locate7,3,Z[22]:

Locate7,4,Z[30]◢

7子程序名:

1(功能:

计算交点要素)

IfZ[48]<0:

Then-1→Z[55]:

Else1→Z[55]:

IfEnd:

Z[55]*Z[48]→Z[56]↙

Z[44]2÷24÷Z[46]-Z[44]^

(4)÷2688÷Z[46]^

(3)→Z[6]↙

Z[45]2÷24÷Z[46]-Z[45]^

(4)÷2688÷Z[46]^

(3)→Z[7]↙

Z[44]÷2-Z[44]^

(3)÷240÷Z[46]2→Z[8]↙

Z[45]÷2-Z[45]^

(3)÷240÷Z[46]2→Z[9]↙

Z[8]+((Z[46]+Z[7]-(Z[46]+Z[6])cos(Z[56]))÷sin(Z[56]))→Z[50]↙

Z[9]+((Z[46]+Z[6]-(Z[46]+Z[7])cos(Z[56]))÷sin(Z[56]))→Z[51]↙

Z[46]*Z[56]π÷180+(Z[44]+Z[45])÷2→Z[52]↙

Z[46]*Z[56]π÷180-(Z[44]+Z[45])÷2→Z[53]↙

(Z[46]+(Z[6]+Z[7])÷2)÷cos(Z[56]÷2)-Z[46]→Z[54]↙

Z[41]-Z[50]→Z[1]↙↙

Z[1]+Z[44]→Z[2]↙↙

Z[2]+Z[53]÷2→Z[3]↙

Z[1]+Z[52]-Z[45]→Z[4]↙

Z[4]+Z[45]→Z[5]↙

8子程序名:

2(功能:

计算主点坐标及切线方位角)

Z[42]-Z[50]cos(Z[47])→Z[19]:

(直缓坐标)

Z[43]-Z[50]sin(Z[47])→Z[20]↙

Z[47]→Z:

360Frac((Z+360)÷360→Z[29](方位角)

Z[42]+Z[51]cos(Z[49])→Z[21]:

(缓直坐标)

Z[43]+Z[51]sin(Z[49])→Z[22]↙

Z[49]→Z:

360Frac((Z+360)÷360→Z[30](方位角)

Z[1]-Z[57]→L↙(H→Z[57]为前直线起点桩号)

Z[42]-(Z[50]+L)cos(Z[47])→Z[23]↙(前直线起点坐标)

Z[43]-(Z[50]+L)sin(Z[47])→Z[24]↙

Z[47]→Z:

360Frac((Z+360)÷360→Z[31]↙(方位角)

Z[44]→Z[12]:

Z[44]→Z[13]:

Prog"3"↙

Z[4]-Z[1]→L:

90(2L-Z[44])÷Z[46]÷π→Z[11]↙

Z[46]sin(Z[11])+Z[8]→Z[14]:

Z[46](1-cos(Z[11]))+Z[6]→Z[15]↙

Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[27]↙(圆缓点坐标)

Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[28]↙

Z[47]+Z[55]Z[11]→Z:

360Frac((Z+360)÷360→Z[33]↙(方位角)

Z[2]-Z[1]→L:

90(2L-Z[44])÷Z[46]÷π→Z[58]↙

Z[46]sin(Z[58])+Z[8]→Z[14]:

Z[46](1-cos(Z[58]))+Z[6]→Z[15]↙

Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[25]↙(缓圆点坐标)

Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[26]↙

Z[47]+Z[55]Z[58]→Z:

360Frac((Z+360)÷360→Z[32]↙(方位角)

9子程序名:

3(主点坐标计算辅助程序)

IfZ[12]=0:

Then0→Z[14]:

0→Z[15]:

Else↙

Z[12]-Z[12]^

(5)÷40÷(Z[46]*Z[13])2+Z[12]^

(9)÷3456÷(Z[46]*Z[13])^

(4)→Z[14]↙Z[12]^

(3)÷6÷(Z[46]*Z[13])-Z[12]^

(7)÷336÷(Z[46]*Z[13])^

(3)+Z[12]^

(11)÷42240÷(Z[46]*Z[13])^

(5)→Z[15]↙

IfEnd↙

程序说明:

1、进入程序:

1.JDZFS2.ZHADAOZFS?

选1为交点法正反算(以后操作均为交点法计算),选2为线元法正反算(以后操作均为线元法计算)

2、ZHONGSHUJS2.JS?

选1重输参数,选2直接进入交点法或线元法正反算(参数为已输过的参数)

3、参数输入:

一、交点法已知数据输入:

BP?

上一交点ZH桩号

K(JD)?

交点桩号

X(JD)?

交点X坐标

Y(JD)?

交点Y坐标

LS1?

第一缓和曲线xx

LS2?

第二缓和曲线xx

R?

圆曲线半径

(ZH)FWJ°?

交点前(即前交点至本交点也即ZH点)的正切线方位角

α(Z-,Y+)?

本交点处线路转角(左转为负,右转为正,度分秒输入)

交点法计算要素显示:

T1=第一切线长

T2=第二切线长

L=曲线总长

LY=圆曲线长

E=曲线外距

K(ZH)=直缓点桩号

K(HY)=缓圆点桩号

K(QZ)=曲中点桩号

K(YH)=圆缓点桩号

K(HZ)=缓直点桩号

二、线元法已知数据输入:

K0?

KN?

R0?

RN?

F0?

X0?

Y0?

ZX?

分别为线元起点桩号、终点桩号、起点半径、终点半径、起点切线方位角、起点X坐标、起点Y坐标、线元转向。

4、XC?

YC?

输入置镜点即测站的X,Y坐标

5、1.ZS2.FS选1正算选2反算

程序线元判断原则:

(1)以道路中线的前进方向(即里程增大的方向)区分左右;

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

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

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

(5)当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。

终点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。

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

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

6、循环计算部份:

输入与显示简单说明

JDZSKX+XXX?

或ZHADAOZSKX+XXX?

输入所求的桩号(交点法或线元法)Z?

输入所求点距中线的边距(在中线输零,左负右正)

RJ?

输入边桩时左右边桩连线与线路前进方向中桩切线的右交角(当输入数字0时进入下一个桩号计算输入)

X=、Y=计算得出的所求点的左、中、右的XY坐标

QF(Z)=×××计算得出所求点的中桩切线方位角

F=×××计算得出置镜点到测点的方位角

S=×××计算得出置镜点到测点的水平距离

JDFSKN+?

交点法反算时需输入反算点所在(前直线,前缓和段、圆曲线、后缓和段、后直线)线元中的任一点桩号(定位线元用)

X=×××反算输入所求点的X坐标

Y=×××反算输入所求点的Y坐标

K=×××计算得出求点所对应的里程

Z=×××计算得出求点到所对应的里程的垂直距离(负就是左边,正就是右边)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1