- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
强哥原创ZHYHZ快速坐标正反算
平曲线程序直回圆回直ZHYHZ(缓和段反算需2到3秒,直线和圆的半秒搞定)
数据库的组织形式
mat A为5*4;mat B为3*10。使用者是需要组织mat B中的数 据(顺序为:起点横坐标,起点纵坐标,起点方位角,半径 ,起点桩号,直缓点桩号,缓圆点桩号,圆缓点桩号,缓直 点桩号,终点桩号
)
正算的特点,只需要提供这个组合线型中的任意桩号,边距 ,斜交角,就可以自动得出相应的中桩坐标,左右边桩坐标 。反算,需要人工选择单调线段(1为第一直线段,2为第一 缓和段,3为圆段,4为第二缓和段,5为第二直线段),输 入坐标,得出里程和偏距(带方向的)如有疑问请加110567389FX5800技术交流群,强哥为你答疑解惑
0→U
lblA
1.NEW:2.OLD?M(选1调用矩阵数据进行初始化计算,2执行上次数据)
M=2=goto0
B-NUM.?N (选择matB中的数据N为行数) 10→dimz
mat B[N,1]+(mat B[N,2]i)→O
mat B[N,3]→W
cos(W)+sin(W)i→W
mat B[N,4]→R
for 1→I to 5
mat B[N,4+I]→mat A[I,1]
mat B[N,4+I]→mat A[I,2]
mat B[N,5+I]-mat B[N,4+I]→V
V→mat A[I,3]
O→Z[2I-1]
W→Z[2I]
I=1=progZZS
if I=2
then
abs(R)abs(RV)^.5/R→F
F→mat A[I,4]
progHZS
ifend:
I=3=progYZS
if I=4
then
-W→W
-F→F
F→mat A[I,4]
progHDQ
ifend:
next
mat A[5,2]→mat A[4,2]
Z[9]→Z[7]
Z[10]→Z[8]
-Z[10]→Z[10]
lbl0
1.ZS:2.FS?N
N=0=gotoA
if N=1
then
lbl1
S?V
V=0=goto0
if Vmat A[1,1]
then
cls
MIN◢
goto1
ifend
if Vmat A[5,1]+mat A[5,3]
then
cls
MAX◢
goto1
ifend
if V=mat A[2,1]
then
1→I
gotoC
ifend
6→I
do
I-1→I
lpwhile Vmat A[I,1]
lblC
mat A[I,4]→F
abs(V-mat A[I,2])→V
Z[2I-1]→O
Z[2I]→W
I=1=progZZS
I=2=progHZS
I=3=progYZS
I=4=progHZS
I=5=progZZS
deg
?X
cos(X)+sin(X)i→X
?Z
cls
MID:O◢
LEFT:O-WXZ◢
RIGHT:O+WXZ◢
goto1
ifend
if N=2
then
do
NUM.?I
I=0=goto0
?X
?Y
X+iY→V
mat A[I,2]→H
mat A[I,4]→F
Z[2I-1]→O
Z[2I]→W
I=1=progZFS
if I=2
then
1→G
progHFS
ifend
I=3=progYFS
if I=4
then
-1→G
progHFS
ifend:
I=5=ProgZFS
cls
S:S◢
Z:Z◢
lpwhile 1
ifend
以上为主程序
直线正算子程序ZZS
VW+O→O
return
直线反算ZFS
(V-O)/W+H→V
rep(V)→S
imp(V)→Z
return
圆正算YZS
rad
V/R→V
2Rsin(.5V)(cos(.5V)+sin(.5V)i)W+O→O
cos(V)+sin(V)i→B
BW→W
return
圆反算YFS
rad
(V-O)/W→V
V-Ri→A
Ri+abs(R)A/abs(A)→A
arg(V)-arg(A)→B
2Rsin-1(.5abs(A)/R)+H→S
abs(V-A)abs(B)/B→Z
return
回线正算HZS
V+U→V
progHHHH
AW+O→O
BW→W
return
回线反算HFS
(V-O)/W→Q
rep(Q)→V
do
progHHHH
rep((Q-A)/B)+V→V
lpwhile rep((Q-A)/B)10^(-6)
arg(Q)-arg(A)→B
G(V-U)+H→S
abs(Q-A)abs(B)/B→Z
return
子程序HHHH
rad
.5V^2/F^2→B
0→A
for 0→S to 4
A+(-1)^S*B^(2S)*V(1/((2S
文档评论(0)