以上程序需要用到的度分秒转换函数及其他函数
function sgn(sgn1)
variable sgn2
if sgn1<0
sgn2=-1
elseif sgn1>0
sgn2=1
elseif sgn1==0
sgn2=0
endif
return sgn2
endf
Help
@language:simplified_chinese
函数qz(x)返回x的取整的值。
@end
Endh
function qz(qz1)
variable qz2
if qz1<0
qz2=-floor(abs(-qz1))
else
qz2=floor(qz1)
endif
return qz2
endf
Help
@language:simplified_chinese
函数qw(x,n)返回x的截取n位小数的值。
@end
Endh
function qw(qw1,n)
variable qw2
if qw1<0
qw2=-floor(abs(-qw1),n)
else
qw2=floor(qw1,n)
endif
return qw2
endf
Help
@language:simplified_chinese
函数 todegdms(x)返回将度分秒的x转化成度的值。
@end
Endh
function todegdms(todegdms1) //度分秒转化为度,度分秒的输入格式为 度.分秒 如1°1′0.01″ 输入 1.010001
variable todd2,todd3,todd4,todd5
todd2=qz( todegdms1)
todd3=(qw( todegdms1,2)- todd2)*100
todd4=(qw( todegdms1,6)-qw( todegdms1,2))*10000
todd5=todd2+todd3/60+todd4/3600
return todd5
endf
Help
@language:simplified_chinese
函数 todmsdeg(x)返回将度格式x转化成度分秒格式的值,此结果为字符串无法参与运算,最后要显示度分秒结果时用此函数。
@end
Endh
function todmsdeg(x)//度转化为度分秒,度分秒不能参与运算只能作为结果显示, 度分秒的格式为 1°1′0.01″
variable x1,x2,x3,x4,x5,x6
x1=x
x2=qz(x1)
x3=(x1-x2)*60
x4=round((x3-qz(x3))*60,2)
x5=qz(x3)
if x4==60
x4=0
x5=x5+1
endif
if x5==60
x5=0
x2=x2+1
endif
return x2+"°"+x5+"′"+x4+"″"
endf
Help
@language:simplified_chinese
函数 todmsjdeg(x)返回将度格式x转化成度分秒格式的值, 此结果为数值可参与运算,在中间计算中转化时可用此函数。
@end
Endh
function todmsjdeg(x)//度转化为度分秒,度分秒可直接参与运算,度分秒的格式为 度.分秒 如1°1′0.01″ 为 1.010001
variable x1,x2,x3,x4,x5,x6
x1=x
x2=qz(x1)
x3=(x1-x2)*60
x4=round((x3-qz(x3))*60,2)
x5=qz(x3)
if x4==60
x4=0
x5=x5+1
endif
if x5==60
x5=0
x2=x2+1
endif
return x2+x5/100+x4/10000
endf
Help
@language:simplified_chinese
函数 toraddms(x)返回将度分秒的x转化成弧度的值。
@end
Endh
function toraddms(toraddms1)//度分秒直接转化为弧度,度分秒的输入格式为 度.分秒 如1°1′0.01″ 输入 1.010001
variable toraddms2
toraddms2=torad(todegdms(toraddms1))
return toraddms2
endf
Help
@language:simplified_chinese
函数 todmsrad(x)返回将弧度的x转化成度分秒格式的值。
@end
Endh
function todmsrad(todmsrad1) //弧度转化为度分秒,度分秒不能参与运算只能作为结果显示, 度分秒的格式为 1°1′0.01″
variable todmsrad2
todmsrad2=todmsdeg(todeg(todmsrad1))
return todmsrad2
endf
Help
@language:simplified_chinese
函数fwjfw(x)返回将方位角x的值调整到0度到360度范围内的值。
@end
Endh
function fwjfw(fwj)
do
if fwj>=360
fwj=fwj-360
elseif fwj<0
fwj=fwj+360
endif
until and(fwj>=0,fwj<360)
return fwj
endf