第二章 角度转换与坐标正反算
- 格式:doc
- 大小:270.50 KB
- 文档页数:6
基本计算1直线定向与坐标推算一、直线定向1、正、反方位角换算对直线AB而言,过始点A的坐标纵轴平行线指北端顺时针至直线的夹角αAB就是AB的正方位角,而过端点B的坐标纵轴平行线指北端顺时针至自线的夹角αBA的反方位角,同一条直线的正、反方位角相派180°、,即同一自线的下反方位角αAB=αBA+180°上式右端,若αBA<180°,用“+”号,若αBA>180°,用“—”号。
2、象限角与方位角的换算一条直线的方向有时一也可用象限角表示,所谓象限角就是揣从坐标纵轴的指北端或指南端起始,至直线的锐角,用R表示,取值范围为0°~90°。
为了说明肖线所在的象限,在R前应加注直线所在象限的名称。
四个象限的名称分别为北东〔NE?、南东(5E ) ,南酉(sw)、北西(NW)。
象限角与坐标方位角之间的换算公式列于表1-4。
3、坐标方位角的推算测量工作中一般不直接测定每条边的方向,而就是通过与已知方向进行连测,推算出各边的坐标方位角。
设地而有相邻的A、B、C三点,连成折线(图1-17),已知AB边的方位角αAB。
,又测定了AB与BC之间的水平角β,求BC边的方位角气αBC,即就是相邻边坐标方位角的推算。
水平角β又有左、右之分,前进方向左侧的水平角为β左,前进方向右侧的水平角β右。
设三点相关位置如图1-I7(c)所示,应有αBC=αAB+β左+180°(1一14)设三点相关位置如图1-I7沪)所不,应有αBC=αAB+β左+180°=αAB+β-180°(1一15)若按折线前进方向将AB视为后边,BC边视为前边,综合上二式即得相邻边坐标方位角推算的通式:α前=α后+β左±180°(1一16)显然,如果测定的就是AB与BC方向之间的前进方向右侧水平角β右,因为有β左=360°-β右。
代入上式即得通式:α前=α后-β右±180°上二式右端,若前两项计算结果<180°,180°前而用“十”号,否则180°前而用“一”号。
一、角度转换在工程实际中我们是用角度(60进制)来记录观测数据,但是在计算中计算机(计算器)所能接受的往往是百分制的弧度,因此就有必要将度分秒表示的观测值转换为百分制的弧度以计算机所能接受的方式进行计算。
1、度分秒转换弧度计算计算的关键是要将度分秒分离出来,在这里要用到V B的In t函数。
1)函数的定义形式如下:语法:Int(number) 必要的number参数是Double或任何有效的数值表达式。
如果number 包含Null,则返回Null。
说明:Int删除number的小数部份而返回剩下的整数。
如果number为负数,则Int 返回小于或等于number的第一个负整数,例如,Int 将-8.4 转换成-9。
示例:Dim dfmdfm = Int(124.3425) ' 返回124。
返回参数的整数部分。
2)程序实现步骤①新建“教学程序”工程图1:新建工程新建窗体的属性设置如下:名称:FrmJDCaptio n:角度转换在窗体Frm JD上放置三个标签L abel1、Label2、Label3,三个文本框T e xt1、Text2、T ext3,两个命令按钮Command1、Comman d2,各控件对象的属性设置如下表所示。
2.1 控件对象属性设置2.2 角度转换程序设计界面代码如下:Option Explic it '强制变量定义ConstPI = 3.1415926535'定义常量Privat e Sub Comman d1_Cl ick()Dim m_dfmAs Double '输入的数值,6进制度分秒Dim m_d As Double'定义变量度Dim m_f As Double'定义变量分Dim m_xsdAs Double '小数度m_dfm= Val(Text1.Text) '将字符串常量转换为数字常量m_d = Int(m_dfm)'利用int()函数将度取出m_dfm= (m_dfm- m_d) * 100m_f = Int(m_dfm)'取出分m_dfm= m_dfm* 100 '得到秒m_xsd= m_d + m_f / 60 + m_dfm/ 3600 '转换为小数度Text2.Text = Str(m_xsd)'输出小数度Text3.Text = Str(m_xsd* PI / 180) '输出弧度值End SubPrivat e Sub Comman d2_Cl ick()Unload MeEnd Sub2、弧度转换度分秒计算在“教学程序”工程中新建一窗体,窗体属性设置如下:名称:FrmhdCaptio n:转换弧度在窗体Frm hd上放置两个标签L abel1、Label2,两个文本框T e xt1、Text2,两个命令按钮Command1、Comman d2,各控件对象的属性设置如下表所示。
坐标正反算定义及公式一、坐标正算(地理坐标转平面坐标)坐标正算是将地球上的地理坐标(经纬度)转换为平面坐标(笛卡尔坐标或者极坐标)。
坐标正算是地图制图的一项基本工作。
1.大地参考椭球体模型在进行坐标正算之前,需要先定义一个大地参考椭球体模型,用于近似地球的形状。
常用的大地参考椭球体模型有WGS84、北京54等。
这些模型定义了地球的椭球体参数,如长半轴、扁率等。
2.经度、纬度的度分秒表示法地理坐标通常使用度分秒表示法来表示经度和纬度。
经度是以东西方向为正负,以本初子午线(通常是格林威治子午线)为基准;纬度是以南北方向为正负,以赤道为基准。
3.大地坐标系和平面坐标系大地坐标系是地球表面的经纬度坐标系,平面坐标系是一个笛卡尔坐标系或者极坐标系,用于表示地球表面的平面位置。
4.坐标正算公式坐标正算的公式根据大地参考椭球体模型的不同而有所不同,这里以WGS84椭球体模型为例。
假设待转换的地理坐标是经度λ、纬度φ,转换后的平面坐标是X、Y。
首先,计算出椭球体的参数e:e=√(a^2-b^2)/a其中,a是椭球体的长半轴,b是椭球体的短半轴。
然后,计算出曲率半径N:N = a / √(1 - e^2 * sin^2(φ))接着,计算出当前点的平面坐标:X = (N + h) * cos(φ) * cos(λ)Y = (N + h) * cos(φ) * sin(λ)其中,h是当前点的海拔高度。
以上就是坐标正算的基本公式,可以将地理坐标转换为平面坐标。
二、坐标反算(平面坐标转地理坐标)坐标反算是将平面坐标(笛卡尔坐标或者极坐标)转换为地理坐标(经纬度)。
坐标反算是地图制图或者位置定位的一项重要工作。
1.平面坐标的原点和单位平面坐标通常以其中一点为原点,单位长度为米或者其他距离单位。
原点可以在任意位置,但是通常选择区域的中心或者其中一突出地物为原点。
2.坐标反算的过程坐标反算的过程是根据平面坐标和大地参考椭球体模型,计算出对应的地理坐标。
基本计算1直线定向和坐标推算一、直线定向1、正、反方位角换算对直线AB而言,过始点A的坐标纵轴平行线指北端顺时针至直线的夹角αAB是AB的正方位角,而过端点B的坐标纵轴平行线指北端顺时针至自线的夹角αBA的反方位角,同一条直线的正、反方位角相派180°.,即同一自线的下反方位角αAB=αBA+180°上式右端,若αBA<180°,用“+”号,若αBA>180°,用“—”号。
2、象限角与方位角的换算一条直线的方向有时一也可用象限角表示,所谓象限角是揣从坐标纵轴的指北端或指南端起始,至直线的锐角,用R表示,取值范围为0°~90°。
为了说明肖线所在的象限,在R前应加注直线所在象限的名称。
四个象限的名称分别为北东〔NE?、南东(5E ) ,南酉(sw)、北西(NW)。
象限角和坐标方位角之间的换算公式列于表1-4。
3、坐标方位角的推算测量工作中一般不直接测定每条边的方向,而是通过与已知方向进行连测,推算出各边的坐标方位角。
设地而有相邻的A、B、C三点,连成折线(图1-17),已知AB边的方位角αAB。
,又测定了AB和BC之间的水平角β,求BC边的方位角气αBC,即是相邻边坐标方位角的推算。
水平角β又有左、右之分,前进方向左侧的水平角为β左,前进方向右侧的水平角β右。
设三点相关位置如图1-I7(c)所示,应有αBC=αAB+β左+180°(1一14)设三点相关位置如图1-I7沪)所不,应有αBC=αAB+β左+180°=αAB+β-180°(1一15)若按折线前进方向将AB视为后边,BC边视为前边,综合上二式即得相邻边坐标方位角推算的通式:α前=α后+β左±180°(1一16)显然,如果测定的是AB和BC方向之间的前进方向右侧水平角β右,因为有β左=360°-β右。
代入上式即得通式:α前=α后-β右±180°上二式右端,若前两项计算结果<180°,180°前而用“十”号,否则180°前而用“一”号。
第二章角度转换与坐标正反算一、角度转换在工程实际中我们是用角度(60进制)来记录观测数据,但是在计算中计算机(计算器)所能接受的往往是百分制的弧度,因此就有必要将度分秒表示的观测值转换为百分制的弧度以计算机所能接受的方式进行计算。
1、度分秒转换弧度计算计算的关键是要将度分秒分离出来,在这里要用到VB的Int函数。
1)函数的定义形式如下:语法:Int(number) 必要的number 参数是Double 或任何有效的数值表达式。
如果number 包含Null,则返回Null。
说明:Int删除number 的小数部份而返回剩下的整数。
如果number 为负数,则Int 返回小于或等于number 的第一个负整数,例如,Int 将-8.4 转换成-9。
示例:Dim dfmdfm = Int(124.3425) ' 返回124。
返回参数的整数部分。
2)程序实现步骤①新建“教学程序”工程图1:新建工程新建窗体的属性设置如下:名称:FrmJDCaption:角度转换在窗体FrmJD上放置三个标签Label1、Label2、Label3,三个文本框Text1、T ext2、Text3,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
2.1 控件对象属性设置2.2 角度转换程序设计界面代码如下:Option Explicit '强制变量定义Const PI = 3.1415926535 '定义常量Private Sub Command1_Click()Dim m_dfm As Double '输入的数值,6进制度分秒Dim m_d As Double '定义变量度Dim m_f As Double '定义变量分Dim m_xsd As Double '小数度m_dfm = Val(Text1.Text) '将字符串常量转换为数字常量m_d = Int(m_dfm) '利用int()函数将度取出m_dfm = (m_dfm - m_d) * 100m_f = Int(m_dfm) '取出分m_dfm = m_dfm * 100 '得到秒m_xsd = m_d + m_f / 60 + m_dfm / 3600 '转换为小数度Text2.Text = Str(m_xsd) '输出小数度Text3.Text = Str(m_xsd * PI / 180) '输出弧度值End SubUnload MeEnd Sub2、弧度转换度分秒计算在“教学程序”工程中新建一窗体,窗体属性设置如下:名称:FrmhdCaption:转换弧度在窗体Frmhd上放置两个标签Label1、Label2,两个文本框Text1、Text2,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
一、角度转换
在工程实际中我们是用角度(60进制)来记录观测数据,但是在计算中计算机(计算器)所能接受的往往是百分制的弧度,因此就有必要将度分秒表示的观测值转换为百分制的弧度以计算机所能接受的方式进行计算。
1、度分秒转换弧度计算
计算的关键是要将度分秒分离出来,在这里要用到VB的Int函数。
1)函数的定义形式如下:
语法:
Int(number) 必要的number 参数是Double 或任何有效的数值表达式。
如果number 包含Null,则返回Null。
说明:
Int删除number 的小数部份而返回剩下的整数。
如果number 为负数,则Int 返回小于或等于number 的第一个负整数,例如,Int 将-8.4 转换成-9。
示例:
Dim dfm
dfm = Int(124.3425) ' 返回124。
返回参数的整数部分。
2)程序实现步骤
①新建“教学程序”工程
图1:新建工程
新建窗体的属性设置如下:
名称:FrmJD
Caption:角度转换
在窗体FrmJD上放置三个标签Label1、Label2、Label3,三个文本框Text1、Text2、Text3,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
2.1 控件对象属性设置
2.2 角度转换程序设计界面
代码如下:
Option Explicit '强制变量定义
Const PI = 3.1415926535 '定义常量
Private Sub Command1_Click()
Dim m_dfm As Double '输入的数值,6进制度分秒
Dim m_d As Double '定义变量度
Dim m_f As Double '定义变量分
Dim m_xsd As Double '小数度
m_dfm = Val(Text1.Text) '将字符串常量转换为数字常量
m_d = Int(m_dfm) '利用int()函数将度取出
m_dfm = (m_dfm - m_d) * 100
m_f = Int(m_dfm) '取出分
m_dfm = m_dfm * 100 '得到秒
m_xsd = m_d + m_f / 60 + m_dfm / 3600 '转换为小数度
Text2.Text = Str(m_xsd) '输出小数度
Text3.Text = Str(m_xsd * PI / 180) '输出弧度值
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
2、弧度转换度分秒计算
在“教学程序”工程中新建一窗体,窗体属性设置如下:
名称:Frmhd
Caption:转换弧度
在窗体Frmhd上放置两个标签Label1、Label2,两个文本框Text1、Text2,两个命令按钮Command1、Command2,各控件对象的属性设置如下表所示。
2.2 控件对象属性设置
2.3 转换弧度程序设计界面
Private Sub Command1_Click()
Dim hd As Double '定义接收的弧度值
Dim xsd As Double '定义变量存储小数度
Dim dfm As Double '定义转换得到的度分秒表示的数值
Dim d As Double '定义变量度
Dim f As Double '定义变量分
hd = Val(Text1.Text) '由文本框得到要转换的弧度值
xsd = hd * 180 / 3.1415926535 '转换为小数度
d = Int(xsd) '得到相应的度
xsd = (xsd - d) * 60 '转换为分
f = Int(xsd) '提取分
xsd = (xsd - f) * 60 '得到相应的秒值
dfm = d + f * 0.01 + xsd * 0.0001 '转换为度分秒表示的格式
Text2.Text = Format(dfm, "##0.00000") '结果输出
End Sub
3、format()函数
根据格式表达式中的指令来格式化输出数值、日期或字符串。
该函数格式如下:
Format(表达式,[格式字符串])
其中,表达式为要格式化的数值、日期和字符串的表达式,格式字符串表示要输出的指定的格式。
格式字符串有数值格式、日期格式、和字符格式三类。
4、框架控件和单选按钮的应用及选择语句初步
2.3 选择语句程序设计界面
Frame 控件为控件提供可标识的分组。
Frame 可以在功能上进一步分割一个窗体-例如,把 OptionButton 控件分成几组。
说明
为了将控件分组,首先需要绘制 Frame 控件,然后绘制 Frame 里面的控件。
这样就可以把框架和里面的控件同时移动。
如果在 Frame 外部绘制了一个控件并试图把它移到框架内部,那么控件将在 Frame 的上部,这时需分别移动 Frame 和控件。
为了在 Frame 中选择多个控件,在使用鼠标在控件周围绘制框时,按住 CTRL 键。
二、坐标正反算:
1、坐标正算
A s y y A s x x sin cos 00⨯+=⨯+=
2、坐标反算
1)计算两点之间的距离。
)()()()(s i j i j i j i j y y y y x x x x -⨯-+-⨯-= 2)方位角计算
y=arccos(x),定义域[-1,1] , 值域[0,π]; y=arctan(x),定义域(-∞,+∞),值域(-π/2,π/2);。