Tecnología

Inicio

Cómo calcular el curso y distancia en VB

Cómo calcular el curso y distancia en VB


La distancia y el curso entre dos puntos en un globo se pueden calcular utilizando dos fórmulas. El problema está bien definido y sirve como una tarea fácil para un lenguaje de programación como Visual Basic. Sin embargo, una elección debe hacerse entre una línea recta, que no cambia (líneas de rumbo) o un curso curvado más eficiente que se aprovecha de la curvatura de la Tierra.

Instrucciones

1 Crear un nuevo proyecto haciendo clic en "Archivo" y "Nuevo proyecto".

2 Arrastre cuatro etiquetas fuera de la caja de herramientas y en su proyecto y organizar en una línea de arriba a abajo. Haga clic en cada etiqueta y, en el cuadro de propiedades, cambie el campo de texto para que se lean "A partir Latitud", "Terminar Latitud", "Inicio de longitud", "Terminar Longitud".

3 Arrastre cuatro cuadros de texto fuera de la caja de herramientas y colocar uno justo a la derecha de cada etiqueta. Haga clic en cada cuadro de texto y, en el cuadro de propiedades, cambie el campo nombre para reflejar los siguientes nombres:. "StartLatTextBox", "endLatTextBox", "startLongTextBox", "endLongTextBox"

4 Arrastre un botón desde la caja de herramientas y lo puso en la parte inferior del proyecto. Haga doble clic en él para entrar en el editor de código.

5 Pegue el siguiente en el método de "Button1_Click":

Dim sLat = Double.Parse(startLatTextBox.Text)

Dim slong = Double.Parse (startLongTextBox.Text)

Dim elat = Double.Parse (endLatTextBox.Text)

Dim eLong = Double.Parse (endLongTextBox.Text)

Dim dLat = D2R (Elat - slät)

Dim dLong = D2R (eLong - slong)

Dim dPhi = Math.log (Math.tan (Elat / 2 + Math.PI / 4) / Math.tan (slät / 2 + Math.PI / 4))

Dim q = Nuevo Doble

Si (dPhi = 0) A continuación,

q = Math.cos (slat)

Más

q = dLat / dPhi

Terminara si

If (Math.Abs ​​(dLong)> Math.PI), entonces

IIf (dLong> 0, dLong = (2 * Math.PI - dLong) * -1, dLong = 2 * Math.PI + dLong)

Terminara si

Dim earthRadius = 6371 kilómetros REM

dim = distancia Math.Sqrt (dLat ^ 2 + q ^ 2 * dLong ^ 2) * earthRadius

rodamiento Dim = Math.atan2 (dLong, dPhi)

cojinete de rodamiento * = 180 / Math.PI

MessageBox.Show ( "Distancia =" & distancia & ". Curso =" & cojinete)

El código anterior hace uso de un "D2R" (grados a radianes) función que aún no existe, por lo pegue el siguiente código justo debajo de la "función final" declaración de "Button1_Click".

Public Function D2R(ByVal Angle As Double) As Double

D2R = Ángulo * Math.PI / 180

End Function

6 Haga clic en la flecha verde para iniciar el programa. Ahora puede introducir cualquier par de coordenadas de latitud y longitud (en formato decimal) y encontrar la distancia entre ellos (en kilómetros) y el cojinete (en grados) para llegar al destino.

Consejos y advertencias

  • Estas fórmulas se utilizan todos los días para la navegación práctico alrededor de la Tierra, pero tienen pequeñas imprecisiones debido al hecho de que la Tierra no es una esfera perfecta. Ellos son lo suficientemente pequeños como para hacer poca diferencia práctica para la navegación, pero sí existen.
  • Estas fórmulas Calcular rodamiento utilizando las líneas de rumbo con el fin de mantener un rumbo constante. líneas de rumbo, a pesar de que se llega a su destino, no siguen un gran círculo. Los grandes círculos requieren cambios constantes en curso para permanecer en el círculo, pero, debido a la curvatura de la Tierra, corte a cierta distancia en comparación con línea de rumbo.