早教吧作业答案频道 -->数学-->
英语翻译'计算两经纬度之间距离=callonglat(经度1,纬度1,经度2,纬度2)PublicFunctionCalLongLat(ByVallong1AsDouble,ByVallat1AsDouble,ByVallong2AsDouble,ByVallat2AsDouble)AsDoubleConstPIAsDouble=3.1415926535Dim
题目详情
英语翻译
'计算两经纬度之间距离=cal_long_lat(经度1,纬度1,经度2,纬度2)
Public Function Cal_Long_Lat(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
Dim sinX,cosX As Double
sinX = Sin(AngleLat1) * Sin(AngleLat2)
cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1)
x = sinX + cosX
On Error Resume Next
ax = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)
Cal_Long_Lat = 6368.16 * ax
End Function
'计算两经纬度之间角度=cal_bearing(经度1,纬度1,经度2,纬度2)
Public Function Cal_bearing(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
y = Sin(AngleLong1 - AngleLong2) * Cos(AngleLat2)
x = Cos(AngleLat1) * Sin(AngleLat2) - Sin(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong1 - AngleLong2)
Cal_bearing = 360 - (Atan2(y,x) * 180 / PI + 360) Mod 360
End Function
Public Function Atan2(ByVal y As Double,ByVal x As Double) As Double
Const PI As Double = 3.1415926535
If y > 0 Then
If x >= y Then
Atan2 = Atn(y / x)
ElseIf x = -y Then
Atan2 = Atn(y / x)
ElseIf x
'计算两经纬度之间距离=cal_long_lat(经度1,纬度1,经度2,纬度2)
Public Function Cal_Long_Lat(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
Dim sinX,cosX As Double
sinX = Sin(AngleLat1) * Sin(AngleLat2)
cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1)
x = sinX + cosX
On Error Resume Next
ax = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)
Cal_Long_Lat = 6368.16 * ax
End Function
'计算两经纬度之间角度=cal_bearing(经度1,纬度1,经度2,纬度2)
Public Function Cal_bearing(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
y = Sin(AngleLong1 - AngleLong2) * Cos(AngleLat2)
x = Cos(AngleLat1) * Sin(AngleLat2) - Sin(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong1 - AngleLong2)
Cal_bearing = 360 - (Atan2(y,x) * 180 / PI + 360) Mod 360
End Function
Public Function Atan2(ByVal y As Double,ByVal x As Double) As Double
Const PI As Double = 3.1415926535
If y > 0 Then
If x >= y Then
Atan2 = Atn(y / x)
ElseIf x = -y Then
Atan2 = Atn(y / x)
ElseIf x
▼优质解答
答案和解析
Private Sub Form_Click() '单击窗体上任意地方
Dim a(1 To 10) As Integer,i%,maxa%,mina%,avera!'声明各种变量
For i = 1 To 10 '开始一个循环(循环10次)
a(i) = Int(Rnd * 100) '给数组a赋初始值(10个整数均为随机产生的)
Next i '循环截止符
mina = a(1) '将数组中排在第一位的a(1)中的数值存入“最小数变量mina”中,暂定是最小数
maxa = a(1) '将数组中排在第一位的a(1)中的数值存入“最大数变量maxa”中,暂定是最大数
avera = a(1) '将数组中排在第一位的a(1)中的数值存入“平均值变量avera”中,暂定是平均值
For i = 2 To 10 '循环从排位第2的位置开始到最后(10)
If a(i) > maxa Then maxa = a(i) '找出最大数(拿第一个数maxa分别和后面的9个数比较,大的存入maxa中)
If a(i) < mina Then mina = a(i) '找出最小数(拿第一个数mina分别和后面的9个数比较,小的存入mina中)
avera = avera + a(i) '算出10个数的总和(第一个avera分别加上后面的9个并存入avera中)
Next i
For i = 1 To 10
Print a(i) '此循环的目的是在窗体上打印出上面随机生成的10个数
Next i
Print '换一行
Print "max="; maxa,"min="; mina,"aver="; avera / 10 '在窗体的第二行输出:最大数、最小数、平均值
End Sub 结束
Dim a(1 To 10) As Integer,i%,maxa%,mina%,avera!'声明各种变量
For i = 1 To 10 '开始一个循环(循环10次)
a(i) = Int(Rnd * 100) '给数组a赋初始值(10个整数均为随机产生的)
Next i '循环截止符
mina = a(1) '将数组中排在第一位的a(1)中的数值存入“最小数变量mina”中,暂定是最小数
maxa = a(1) '将数组中排在第一位的a(1)中的数值存入“最大数变量maxa”中,暂定是最大数
avera = a(1) '将数组中排在第一位的a(1)中的数值存入“平均值变量avera”中,暂定是平均值
For i = 2 To 10 '循环从排位第2的位置开始到最后(10)
If a(i) > maxa Then maxa = a(i) '找出最大数(拿第一个数maxa分别和后面的9个数比较,大的存入maxa中)
If a(i) < mina Then mina = a(i) '找出最小数(拿第一个数mina分别和后面的9个数比较,小的存入mina中)
avera = avera + a(i) '算出10个数的总和(第一个avera分别加上后面的9个并存入avera中)
Next i
For i = 1 To 10
Print a(i) '此循环的目的是在窗体上打印出上面随机生成的10个数
Next i
Print '换一行
Print "max="; maxa,"min="; mina,"aver="; avera / 10 '在窗体的第二行输出:最大数、最小数、平均值
End Sub 结束
看了英语翻译'计算两经纬度之间距离...的网友还看了以下:
东西半球的分界线是()A.东经100度和西经80度B.东经160度和西经20度C.东经20度和西经 2020-04-23 …
wgs84转西安80坐标,中央子午线84度.1、东经85度,北纬44度37分2、东经85度,北纬4 2020-04-25 …
下列各点属东半球的是请告诉详细解题思路A东经165度北纬45度B东经175度南纬45度C西经15度 2020-05-17 …
与东经30度正好相对的经线是A.西经30度经线B.东经150度经线C.西经150度经线D.东经12 2020-06-06 …
几个地理问题,初中1.广州所在地经度为东经113度,纬度为北纬23度可写为(),().2.()经线 2020-06-07 …
经纬度换算的问题.经度:39°06′14.73″纬度:122°04′09.27″经度:39°06′ 2020-06-09 …
下列地点中,符合东半球,北半球两个条件的有?A:西经21度纬度0度B:经度0度,北纬26度C:东经 2020-07-18 …
自然地理位置描述(求所经过的地形区、河流、山脉、城市.)求经过北纬30度、北纬60度、北回归线、赤 2020-08-03 …
英语翻译'计算两经纬度之间距离=callonglat(经度1,纬度1,经度2,纬度2)PublicF 2020-11-01 …
1.下列地点中,符合东半球,北半球两个条件的有()A西经21度,纬度0度B经度0度,北纬26度C东经 2021-01-05 …