June 19
La distanza e rotta tra due punti su un globo possono essere calcolate utilizzando due formule. Il problema è ben definito e serve come un compito facile per un linguaggio di programmazione come Visual Basic. Tuttavia, una scelta deve essere fatta tra un percorso rettilineo immutabile (lossodromie) o un corso curva più efficiente che sfrutta la curva della Terra.
1 Creare un nuovo progetto facendo clic su "File" e "Nuovo progetto".
2 Trascinare quattro etichette fuori della casella degli strumenti e nel progetto e disporli in una linea da cima a fondo. Fare clic su ogni etichetta e, nella finestra delle proprietà, modificare il campo di testo in modo che leggono "Avvio di Latitude", "Ending Latitude", "Avvio Longitudine", "Ending Longitudine".
3 Trascinare quattro caselle di testo di casella degli strumenti e posizionare uno appena a destra di ogni etichetta. Fare clic su ogni casella di testo e, nella finestra delle proprietà, modificare il campo nome per riflettere i seguenti nomi:. "StartLatTextBox," "endLatTextBox," "startLongTextBox", "endLongTextBox"
4 Trascinare un pulsante dalla casella degli strumenti e metterla sul fondo del progetto. Fare doppio clic su di esso per inserire il editor di codice.
5 Incollare il seguente all'interno del metodo "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 - SLAT)
Dim Dlong = D2R (eLong - slong)
Dim dPhi = Math.log (Math.Tan (ELAT / 2 + Math.PI / 4) / Math.Tan (Slat / 2 + Math.PI / 4))
Dim q = Nuovo doppio
Se (dPhi = 0) Poi
q = Math.cos (SLAT)
Altro
q = DLAT / dPhi
Finisci se
If (Math.Abs (Dlong)> Math.PI) THEN
IIf (Dlong> 0, Dlong = (2 * Math.PI - Dlong) * -1, Dlong = 2 * Math.PI + Dlong)
Finisci se
Dim earthRadius = 6371 REM chilometri
distanza Dim = Math.Sqrt (DLAT ^ 2 + q ^ 2 * Dlong ^ 2) * earthRadius
cuscinetto Dim = Math.atan2 (Dlong, dPhi)
cuscinetto = cuscinetto * 180 / Math.PI
MessageBox.Show ( "Distance =" & distanza & ". Corso =" & cuscinetto)
Il codice di cui sopra fa uso di un "D2R" (gradi in radianti) funzione che non esiste ancora, quindi incollare il seguente codice direttamente sotto la "funzione fine" economico "Button1_Click".
Public Function D2R(ByVal Angle As Double) As Double
D2R = Angolo * Math.PI / 180
End Function
6 Fare clic sulla freccia verde per avviare il programma. Ora è possibile inserire una qualsiasi coppia di coordinate di latitudine e longitudine (in formato decimale) e trovare la distanza tra loro (in chilometri) e il cuscinetto (in gradi) per raggiungere la destinazione.