Quantcast
Channel: VBForums - Visual Basic 6 and Earlier
Viewing all articles
Browse latest Browse all 21090

getting angle from two point position (in Italian)

$
0
0
Hello everybody, I'm new in this space, i'm going to post this how to message in italian, early I'll translate in English, but for the moment You could use google translator, please pardon me, :)

Diverse volte mi è capitato per via del tipo di programmi che scrivo
di dover ricorrere all'estrapolazione dell'angolo alfa di un punto rispetto ad un altro considerato su di un piano, o se vogliamo l'inclinazione di una retta passante per due punti rispetto allo 0° est dello schermo.

Finora, ed effetuando ricerche su internet il suggerimento ricavato è sempre stato di utilizzare le funzioni matematiche derivate di seno ed coseno inverso, (credo ricavate dalle formule di taylor, che utilizza la tangente e l'enunciato per il quale un triangolo inscritto in un altro è proporzionale a quest'ultimo), alle quali spesso non si fà cenno che il parametro X è in formato radiante.

Una delle difficoltà di queste 2 funzioni derivate è che se il parametro X ha valore 1 (come capiterebbe per un angolo di 45°, 90, o 0) la divisione avviene per 0, come si sà una divisione per zero restituisce infinito quindi un valore non discretto, stessa tangente per 90° ha valore infinito e lo stesso dicasi per acontangente di 0°. Stanco di dover ogni volta ripensare a questi limiti e di scrivere il codice adeguato senza dover andare a ricercare i codici passati, ho deciso di rivedermi un pò di trigonometria e di pensarci sopra, in fondo durante gli studi ero abbastanza portato per questa materia.



Possiamo perciò partire dal seno e la sua definizione che non è immediata nella conoscenza comune;

Il seno di un angolo giacente sul centro di un cerchio, è la metà del segmento che interseca il diametro del cerchio inseno a due punti distinti.

Seno deriva da una errata traduzione dell'arabo bjn in baja e quindi seno, avvenuta qualche secolo addietro, bjn è a sua volta la traduzione araba derivata dal trattato indiano del matematico che studiò e formulo questo aspetto della trigonometria, dando al seno il nome di mezza corda.

Quindi il seno altro non è che una espressione di una misura metrica.

Costruiamo la seguente figura geometrica, un cerchio, la sua corda qualsiasi, divisa in due, tracciamo dal centro del cerchio il raggio che passa per il punto mediano della corda, l’angolo che si forma, tra la retta del raggio e la corda è di 90°, tracciamo ora un raggio che passa per uno dei due punti estremi della corda ed otterremo un triangolo rettangolo.

I lati di questo triangolo inscritto in uno dei quadranti del cerchio sono rispettivamente il coseno dell’angolo @ insistente su centro del cerchio, il seno dell’angolo @ ed il raggio del cerchio.

Ricorrendo al teorema di Pitagora per il quale la somma dei quadrati costruiti sui lati minori del triangolo è pari al quadrato costruito sul lato maggiore possiamo scrivere che:

seno@2 + coseno@2 = Raggio2

Se consideriamo il raggio unitario, ovvero una unità metrica di qualunque natura; 1 metro, 1km, 1 anno luce, 1 stara, 1 giorno di lavoro, 1 miglio nautico o marino etcc etcc, purchè i calcoli conseguenti ed i risultati addotati rimangano congrui nel sistema metrico utilizzato, possiamo scrivere:

seno@2 + coseno@2 = 1;

ossia

seno@+ coseno@ = 1

questo ci dice che la somma dei due lati minori inscritti nel quadrante qualunque del cerchio è sempre uguale al raggio del medesimo.

Soffermiamoci un’attimo sul valore del coseno;

coseno@ = 1 – seno@

il coseno è il seno dell’angolo opposto ad @, ovvero dell’angolo 90°-@ o meglio in radianti (Pig/2) - @, dato che la somma degli angoli interni di un triangolo è sempre di 180° = Pig

Se invertissimo gli angoli il seno varrebbe il coseno e viceversa.

La formula pitagorica derivata si mantiene sempre vera anche quando uno dei due addendi vale 0, invero seno@ (0°) = 0, coseno@(90°) = 0, rispettivamente uno dei due equivale al raggio.

Se moltiplicassimo i membri della equazione per un raggio discreto non cambieremo il valore dell’equazione:

(seno@+ coseno@)*Ri = 1*Ri

Avremo

(seno@+ coseno@)*Ri = Ri

Semplificando

(seno@+ coseno@) = Ri/Ri = 1

Il quadrante generico nel quale siamo lavorando vale come apertura angolare 360/4 = 90 in radianti

(2*Pig)/4 = 1.57 ossia Pig/2

Possiamo quindi impostare in base alle formulazioni precedenti il rapporto di connessione che vi è tra le dimensioni del seno e del coseno e l’angolo @ ed l’apertura angolare del quadrante scrivendo la proporzione:

seno@:R = 2@:Pig

seno@ = 2@
R Pig

@ = seno@*pig
2R

In gradi

@ = seno@* Pig * 180
2R Pig

@ = seno@*90*R (R=1)

Se provate ad impostare il seno@, ad esempio: seno@= R/2 otterrete che @ vale 45°
seno@=R, @=90; seno@=0; @=0 e così via, provate per i valori che volete magari con una
tabella trigonometrica davanti.

Ricordate che il segno è importante per stabilire il quadrante del cerchio. :wave:

Viewing all articles
Browse latest Browse all 21090

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>