- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我的5800测量程序
今天终于完成了缓和曲线上由坐标反算里程的程式,误差小于0.0001m。在5800上运行,大约需要1分钟左右。此程式逐步逼近法,所以费时。下面我把程式写出来。
Prog “INIT”---在这个程序中输入曲线参数。
“dka”?A:”ca”:?B:”X0”?C:”Y0”?D:”Ra”?E:”Rb”?F:”dkb”?G
#Ra、Rb分别为起点和终点的曲率,左曲线为负,右曲线为正,直线为0
#ca为起点方位角
Prog”FFXPS”---复方辛普森公式,分段数为9
If KG:then G-A(O:else K-A(O:ifend:(F-E)÷(G-A)(P:E+PO(Q:#Q为i点的曲率
B+(Q+E)*O*90÷π(Z:prog”K”:prog”K05”:#Z为i点的方位角
C+H÷6*(cos(B)+2S+4U+cos(Z))(X:#B为起始点方位角
D+H÷6*(sin(B) +2T+4V+sin(Z))(Y:#H为分为N小段后每段长度=(dkb-dka)/9
If L≠0:then prog”BZJS”:ifend #L为边桩的宽度,左边桩为负,右边桩为正,0为中桩
Prog”K”---子程序,求出S和T
0(S:0(T:O÷9(H:1(I:#O=dki-dka
Lbi 1:A+IH(J:E+P(J-A)(X:B+(X+E) *(J-A)*90÷π(Y:#X为k点曲率,Y为k点方位角
S+cos(Y)(S:T+sin(Y)(T:Isz I:#Isz I是将变量I加1
If I9:then Goto 1:ifend
Prog”K05”---子程序,求出U和V
0(U:0(V:O÷9(H:0.5(I:
Lbi 1:A+IH(J:E+P(J-A)(X:B+(X+E) *(J-A)*90÷π(Y:#X为k/2点曲率,Y为k/2点方位角
U+cos(Y)(S:V+sin(Y)(T:Isz I:#Isz I是将变量I加1
If I9: then Goto 1: ifend
Prog”ZBJS”---坐标计算主程序
Prog”INIT”:Lbi 1:”dki”?K:”BZK”?L:Prog”FFXPS”:
“X”:X▲
“Y”:Y▲
“FWJ”:Z▲
Goto 1
Prog”ZBJS”---子程序,计算边桩坐标
L/Abs(L)(S:X+Abs(L)cos(Z+S*90)(X:
Y+Abs(L)sin(Z+90S)(Y
Prog”XYTOSZ”---坐标反算主程序(适用于缓和曲线段)
Prog”INIT”:”X”?W:”Y”?R:
G(K:0(L:Prog”FFXPS”:pol(X-C,Y-D):#先求出曲线终点的坐标
If J0:then 360+J(K: else J(K:ifend:#然后求出终点到起点的方位角
Pol(W-C,R-D):if J0: then 360+J(L: else J(L:ifend:#
If L-K180:then Abs(L-K-360)(M:else Abs(L-K)(M:ifend:Icos(M)(S:A+S(K:
Lbi 1:0(L:Prog”FFXPS”:pol(W-X,R-Y):
If J0: then 360+J(J: ifend:
If J-Z180: then Abs(J-Z-360)(M: else Abs(J-Z)(M:ifend:Icos(M)(S:K+S(K:
If Abs(S)0.0001: then Goto 1: ifend:#0.0001决定了所求里程的误差大小。
If J-Z180 OR J-Z0: then I*-1(I: ifend:
“DK”:K▲
“BZK”:I▲
逼近法示意图
Prog”3PINLINE”----判断第三点是否在前两点构成的直线上,求出里程及偏离直线的距离,负为左偏,正为右偏
“SX”?K:”SY”?L:”DKS”?M:”EX”?N:”EY”?O:
Pol(N-K,O-L):J0=360+J(R:J(R:
Lbi 1:”IX”?P:”IY”?Q:pol(P-K,Q-L)(S:
J0=360+J(U:J(U:if Abs(U-R)90:then S*cos(U-R)(V:
S*sin(U-R)(W:Goto 2:ifend:
If (U-R-360)90: then S*cos(U-R-360)(V:S*sin(U-R-360)(W:else “NOT IN LINE” ▲
Goto 1: ifend:Lbi 2:”DKI=”:M+V▲
If W0: then “YP”:W▲
Else “ZP”:W▲
Ifend:Goto 1
Prog”XYTOSZ”---坐标反算里程(圆曲线)
“Xs”?A:
文档评论(0)