Punto medio tra due punti su una sfera

sdullaz
Salve ho bisogno di calcolare, a partire da due punti geografici dati, il punto medio tra di essi. Per fare questo non si può di certo utilizzare il calcolo del punto medio tra due punti in un piano cartesiano, vista la sfericità della Terra. Di conseguenza ho bisogno di sapere come si calcolano le coordinate del punto medio tra due punti su una sfera.
Potreste aiutarmi?
Grazie

Risposte
Pappappero1
Cosa succede se si prende il punto medio del segmento tra i due punti (che quindi si trova all'interno della sfera) e lo si proietta sulla superficie sferica lungo la retta che passa per il centro?

sdullaz
A questo ci avevo pensato anche io ma è di difficile applicazione a quello che mi serve.

vict85
Ma tu hai il punto espresso in latitudine e longitudine?

sdullaz
si ho due punti espressi in latitudine e longitudine devo trovare il punto medio tra questi due

Sk_Anonymous
Come ti hanno già suggerito, puoi procedere determinando il punto medio della corda:

$\{(x_1=Rcosphi_1sintheta_1),(y_1=Rsinphi_1sintheta_1),(z_1=Rcostheta_1):} ^^ \{(x_2=Rcosphi_2sintheta_2),(y_2=Rsinphi_2sintheta_2),(z_2=Rcostheta_2):} rarr \{(x_M=(x_1+x_2)/2),(y_M=(y_1+y_2)/2),(z_M=(z_1+z_2)/2):}$

ed il punto d'intersezione della sfera con la retta passante per l'origine ed il punto medio appena trovato:

$\{(x/x_M=y/y_M),(x/x_M=z/z_M),(x^2+y^2+z^2=R^2):} rarr \{(x=+-(Rx_M)/sqrt(x_M^2+y_M^2+z_M^2)),(y=+-(Ry_M)/sqrt(x_M^2+y_M^2+z_M^2)),(z=+-(Rz_M)/sqrt(x_M^2+y_M^2+z_M^2)):}$

Ovviamente, se devi esprimere il risultato mediante la longitudine e la latitudine, è necessario fare un po' di conti.

sdullaz
Perfetto ti ringrazio molto. Tutto ciò mi serviva per implementare un metodo di un'applicazione in java. Per quanto riguarda l'uso di valori di latitudine e longitudine basta convertirli in radianti. Una volta ottenuto il risultato basterà riconvertirlo in double che è la notazione utilizzata per esprimere la latitudine e la longitudine.
Grazie ancora.

vict85
Sinceramente vedendo la definizione di latitudine e longitudine e assimilando latitudine con \(\displaystyle \vartheta \) e longitudine con \(\displaystyle \varphi \) direi che una parametrizzazione più corretta è:

\(\displaystyle \begin{cases} x = R\cos\varphi \cos\vartheta \\ y = R\sin\varphi \cos\vartheta \\ z = R\sin\vartheta \end{cases}\)

con \(\displaystyle \varphi \in [0, 2\pi) \) e \(\displaystyle \vartheta \in \biggl(-\frac{\pi}{2}, +\frac{\pi}{2}\biggr) \) e la parametrizzazione non comprende i poli.

Dato che l'angolo è indipendente dalla scelta di R direi che è conveniente supporre che il tutto sia su una sfera unitaria.

\(\displaystyle \begin{cases} x = \cos\varphi \cos\vartheta \\ y = \sin\varphi \cos\vartheta \\ z = \sin\vartheta \end{cases}\)

A questo punto puoi fare i vari passaggi presentati da speculor (probabilmente c'é un metodo che non passi da \(\displaystyle \mathbb{R}^3 \) ma dovrei pensarci per bene).

Nel passaggio \(\displaystyle z_M = (z_1 + z_2)/2 \), utilizzando il fatto che \(\displaystyle \sin x \cos y = \bigl(\sin(x+y) + \sin(x-y)\bigr)/2 \) si ricava che \(\displaystyle z_M = (\sin\vartheta_1 + \sin\vartheta_2)/2 = \sin \vartheta_M \cos \bigl(\Delta\vartheta/2\bigr)\) ma non so quanto possa aiutare.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.