Newsgroup: it.comp.appl.access
Titolo: Tangente inversa per calcolo rotta di volo

Access 00/XP
Ciao a tutti, a quanto pare continuo ad avere difficoltà che non mi lasciano
andare avanti; spero in un vostro aiuto.
Devo continuare a sviluppare un piccolo programma per fare il cartellino di
rotta, appunto con rotta, distanza ecc.
Quella sotto è la base della maschera con i campi bordati di rosso che
verranno nascosti. Non riesco ad applicare le formule in Access, nono stante
ci abbia passato le ore, anche notturne.
Ho la necessità di trovare la rotta quadrantale, la quale non mi chea
problemi con la calcolatrice scientifica, ma con Access sì.
Le formule di seguito indicate, con la calcolatrice, mi hanno dato lo stesso
risultato (piccole differenze sono accettabili in quanto la prima e per
distanze inferiori alle 500 miglia nautiche, mentre la seconda e per
distanze superiori), e sono:
1)     tang rv = cos( latitudine media X differenza di longitudine) /
differenza di latitudine
2)     tan rv = differenza di longitudine / Diff_Lat_Cr
(che sarebbe differenza di latitudine crescente)
Per avere la rotta quadrantale, per entrambi le formule, con la calcolatrice
scientifica, necessita effettuare tang-1 (tangente inversa) del risultato.
Preciso che ho effettuato la trasformazione in radianti per il calcolo e la
trasformazione in gradi, senza ottenere il risultato aspettato.
La differenza di latitudine suindicata rappresenta i gradi e decimi di
gradi, pari a   7° 37'   =  457'   ( per ottenere i primi di grado ' , basta
moltiplicare il n° senza la parte intera (-7) x 60, cioè
0,616666666666667 X 60 = 37' e se resta un valore vuol dire che ci sono i
secondi che si ottengono con lo stesso procedimento dei primi.
Il risultato della rotta quadrantale dovrà essere all'incirca uguale a :
30.27765185
Allego le formule d'interesse relative al 1° e 2°
problema della lossodromia .
esempio: se la latitudine della nave è 40°, la latitudine crescente è:
jc = 7915,7 x Log10 tang (45° + 20°) =
= 7915,7 Log10 tang 65° = 2622,688.
é quindi pari a 2622,688. volte la lunghezza in mm di un primo di arco di 
parallelo della nostra carta.
Le latitudini crescenti hanno lo stesso segno della rispettiva latitudine.
Fatta questa premessa vediamo i due problemi della navigazione sotto forma 
analitica.
  1° problema: date le coordinate del punto di partenza e del punto di 
arrivo     determinare la rotta Rv e la distanza lossodromica m.
 . 1° caso: distanza minore di 500 mg
   la rotta quadrantale tra i due punti è data da
tang rv = cos jm Dl / Dj
   in cui jm è la latitudine media tra i due punti.
   Calcolata la rotta quadrantale rv si ricava la Rotta vera Rv
   la distanza lossodromica m si ottiene con le seguenti formule:
   se la rotta quadratale calcolata rv è £ 45°    m = Dj / cos rv
   se la rotta quadratale calcolata rv è > 45°    m = Dl cos jm / sen rv
 . 2° caso: distanza maggiore di 500 mg
   la rotta quadrantale tra i due punti è data da
tang rv = Dl / Djc
   in cui Djc è la differenza tra la latitudine crescente del punto di 
arrivo e    quella del punto di partenza.
   Calcolata la rotta quadrantale rv, si ricava la Rotta vera Rv.
   si considerano tre sottocasi:
   se rv £ 45°                m = Dj / cos rv
   se 45° £ rv £ 87°        m = Dj tang rv / sen rv
   se rv > 87°               m = Dj cos jm / sen rv
   Se si dispone di una buona calcolatrice, dotata delle funzioni 
logaritmiche    e trigonometriche, il lavoro non è troppo complicato, ma, 
ripeto, nella    pratica si procede graficamente come descritto sopra.
   In alternativa si può ricorrere al volume delle "Tavole nautiche" edite 
dall'Istituto Idrografico della Marina, che nella Tavola 4 riportano le 
latitudini crescenti.
   Facciamo un esempio:
   Navigazione da Algeri a Genova
   Genova   Lat. 44° 24' N   Long. 08° 55' E   jc = 2979,2915
   Algeri      Lat. 36° 47' N   Long. 03° 03' E   jc = 2376,376
   Dj = 7° 37 = 457';     Dl = 5° 52' = 352';     Djc = 602,915
   tang rv = Dl / Djc = 352 / 602,915 = 0,5838297
          rv = N 30°,3 E      Rv = 030°,3
   la distanza da percorrere m è:
   m = Dj / cos rv = 457 / 0,864 = 529,3 mg
  2° problema: dato il punto di partenza A, rotta e velocità della nave, 
determinare le coordinate del punto di arrivo B, dopo un certo numero di 
ore di navigazione.
Dalla rotta si ricava la rotta quadrantale rv
Data la velocità in nodi e la durata della navigazione, si ricava il cammino 
percorso dalla nave (o da percorrere) "m".
La differenza di latitudine tra i due punti sarà data da:
Dj = m cos rv   da cui    jB = jA + Dj
per la differenza di longitudine, si ricorre alle latitudini crescenti, e 
sarà data da:
Dl = Djc tang rv    da cui    lB = lA + Dl
Quando la rotta quadrantale è prossima a 90°, le formule fornite non sono 
esatte; si possono ottenere notevoli imprecisioni, perché in corrispondenza 
di valori della rv prossimi a 90° la tangente varia molto rapidamente, 
tendendo a valori infiniti.
In tal caso, per ricavare le differenze di latitudine e di longitudine, si 
usano le seguenti formule:
   Dj = m cos rv
   Dl = m sen rv / cos jm
   Nota: la latitudine media jm si calcola dopo aver ricavato la latitudine 
del    punto di arrivo.
anche per questa formula la differenza di longitudine è imprecisa, ma:
per m £ 600 miglia e jm £ 60°        l'errore del Dl è inferiore al 1%
Anche per questo problema svolgiamo un esercizio:
Una nave navigazione da Genova verso il bacino occidentale del Mediterraneo, 
naviga con rotta Rv 215° velocità 15 nodi. Si vuol determinare la posizione 
stimata (js ; ls) della nave dopo 20 ore di navigazione.
Genova   Lat. 44° 24' N   Long. 08° 55' E   jc = 2979,2915
    rv = S 35° W        m = 15 nodi x 20 ore = 300 mg
    Dj = m cos rv = 300 x cos 35° = - 245',75 = - 4° 5,75
Latitudine stimata dopo 20 ore:
   js = jGenova + Dj = j = 44° 24' N + (-4° 52',9) = 40° 18',3 N
   jc = 2646,6329
   Djc = -332,6585
Dl = Djc tang rv = -332,6585 x tang 35° = -232,93 = -3° 52',93 Longitudine 
stimata dopo 20 ore:
ls = lGenova + Dl = 08° 55' E + (-3° 52,93) = 05° 02',1 E
Mille grazie
    Bruno

    m = Dj / cos rv = 457 / 0,864 = 529,3 mg
[CUT]
In VBA la funzione inversa della tangente si chiama Atn() ed esprime il
risultato in radianti, quindi dovrai convertirlo in gradi.
----
Gradi=Radianti * 180/Pi
----
Per il tuo esempio vai in VBA premendo ALT+F11, copia la sub qui sotto e
incollala in un modulo BAS, se non ne hai, creane uno nuovo premendo il menu
Inserisci-->Modulo, poi dopo aver inserito la Sub, eseguila premendo il
tasto F5
----
Sub Prova_Calcolo()
Dim Dl As Double
Dim Dj As Double
Dim Djc As Double
Dim Pi As Double 'Pi Greco
Pi = 3.14159265358979
Dl = 352
Dj = 457
Djc = 602.915
Debug.Print "Tang(Rv) = " & Dl / Djc
Debug.Print "°Rv = " & Atn(Dl / Djc) * 180 / Pi
Debug.Print "Distanza m = " & Dj / Cos(Atn(Dl / Djc))
End Sub
----
Risultati dalla finestra immediata (se non la vedi premi
Visualizza-->Finestra Immediata)
----
Tang(Rv) = 0,583830224824395
°Rv = 30,2776742748458
Distanza m = 529,185030352355
----
c'è una differenza nella distanza perchè il valore corretto di Rv è
30,2776742748458 e non 30,3
Spero che questa volta otterrai i miei stessi risultati :-)
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 [Office Access MVP]
Ciao.
-- 
Sergio MAZZA 

 Beh! Visto di cosa si parla, č meglio...
cosě non mi atterra per errore nel campetto di volo degli aereomodelli
:-)


 [Office Access MVP]
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:463faf89$0$36440$4faf...@reader5.news.tin.it...

=======================================================================
Grazie a Giorgio Rancati che mi ha permesso di andare avanti nello sviluppo 
del database e grazie anche agli altri che dedicano tempo e pazienza a chi 
ne sa di meno o a chi non ci capisce molto come il sottoscritto.
Il calcolo torna alla grande. Io ho usato le espressioni; mi piacerebbe 
utilizzare i moduli per semplificare (sapreste indicarmi uno o più testi 
utili?), ma per ora mi accontento; più avanti cercherò di lavorare con i 
moduli.
L'esempio incollato su è stato tratto dal sito 
http://www.leganavale.it/portale/cultura_nautica.asp
 , molto interessante. 
Ovviamente io ho proceduto con calcolatrice e formule da me conosciute e 
usate all'istituto nautico, infatti ho riscontrato un errore, la rotta 
corretta è 210 e non 30 gradi. Con tale rotta si che sarei atterrati in un 
campo per modelli..........
Ancora 1000 grazie
Bruno

 Ancora 1000 grazie
è una battuta che mi è venuta in mente perchè qualche anno fa un elicottero 
è effettivamente atterrato nel nostro campetto per aereomodelli, ma non 
perchè ha sbagliato rotta, il pilota voleva solo salutare un suo amico socio 
del nostro club.
:-)
