Non tutte le funzioni sono uguali
Continuando i miei esperimenti di matematica e astronomia, ho scoperto una cosa che magari sapete già ma me ne sono accorto solo ora.
Ho un file Excel scaricato da Internet per il calcolo di Ascensione Retta e declinazione per le varie stelle, pianeti e lune.
Il codice è scritto in VBA.
Lo traduco in codice VB.NET, e procedo pensando che il funzionamento delle funzioni, quindi gli argomenti fossero simili.
Se per esempio, le funzioni trigonometriche SIN, COS, TAN etc etc hanno il medesimo funzionamento, non si può dire la stessa cosa per la funzione ARCTAN.2, che in VB.NET si chiama ATAN2.
Vediamo un esempio:
Nel file Excel ci metto:

In A1 ci metto X e in A2 ci metto il valore di Y.
In A3 la seguente formula:
=ARCTAN.2(A1;A2)
Come risultato mi dà 0,950546841
Apro Visual Studio, creo un nuovo progetto in VB.NET e ci metto il seguente codice:
Dim A = 0.5
Dim B = 0.7
MsgBox(Math.Atan2(A,B))
Risultato: 0,620249485
Il modo corretto per ottenere l’angolo è: Math.Atan2(B,A)

Oppure
Math.Atan(B/A)

In effetti guardando i siti di riferimento:
https://support.microsoft.com/it-it/office/funzione-arctan-2-c04592ab-b9e3-4908-b428-c96b3a565033
e
https://learn.microsoft.com/en-us/dotnet/api/system.math.atan2?view=net-8.0
Notiamo che X e Y sono invertiti.

Rispondi