资源描述
直线圆曲线坐标正反算5800程序(速度才是硬道理,不信你就试试)
O表示起点坐标,Q表示起点方位角,Z表示起点桩号
C表示圆半径(右偏为正,左偏为负),
S表示正算为桩号K为偏距,
W表示反算输入坐标
N表示计算方式:1正算2反算
P=0时手动输入线元参数输入桩号调用SJK参数
rad:“NEW(0),S=”?P:(当P为零时手动输线元要素)IfP=0:Then?O(起点坐标):?Q(起点方位角):?C(半径):?Z(起点里程):
ElseProg”SJK”:Ifend(否者调用数据库参数)
Qπ/180→E:COS(E)+iSIN(E)→F:(将方位角转化为向量)
Lbi0:Cls:“1.SZ→XY”:“2.XY→SZ”?N:IfN=1:ThenGoto1:ElseGoto2:Ifend(正反算选择)
Lbi1(正算模式)
Cls :(正算输入待求点里程)?S:S=0→Goto0(计算里程为零时重新选择正反算)此处为等号箭头
IfC=无穷大:(直线坐标正算)Then(S-Z)F+O→A◢(显示中桩坐标)?K(输入偏距):A+iFK◢(左桩坐标)A-iF◢(右桩坐标)Else(园线正算)S-Z→V:V/C→B:2CSIN(.5B)(COS(.5B)+iSIN(.5B))→A:COS(B)+iSIN(B)→B:AF+O→A◢(显示所求点中坐标)?k(输入平距):A+iBFK◢(左桩坐标)A-iBFK◢(右桩坐标)GOTO1
LBL 2反算模式
?W:W=0→Goto0(W为坐标,输入零时重新选择正反算)
IfC=无限大:Then(W-O)/F+Z→G:"S=":ReP(G)→I◢(反算直线里程显示)“Z=”ImP(G)→J◢(直线反算偏中显示)Else(反算园)(W-O)/F→V:V-iC→A:(ABS(A)-ABS(C))C→I:Ci+abs(C)A/ABS(A)→A:IfI=0:ThenI=J:Else-ABS(A-V)ABS(I)/I→J:(反算园的平距)Ifend
AF+O→A:"S=":2Csin-1(.5ABS(O-A)/C)+Z◢(显示园反算里程):
“Z=";J◢(显示园反算平距)Ifend Goto2
SJK程序名(数据库)
IfP<计算线元终点And>起点里程:Then起点里程→Z:起点X+Yi→O:起点方位角→Q;半径→C:Return:Ifend
……………………..省略
有几条输几条
园曲线左偏R为负右为正,直线输10的45次方。特别强调一点本程序要在弧度制时才能正确计算,切记切记!!!!
展开阅读全文