Calcolare la posizione di un punto

andramk
Salve, come premesso nelle presentazioni, in geometria sono veramente a livello infimo perché sono decenni che non mi cimento ma ho necessità di ricavare una formula.

Mi scuso in anticipo se il linguaggio non sarà corretto ma spero di compensare con il disegno.



Il problema è il seguente.

Dati 3 punti A(x,y) B(x,y) C(x,y) ho bisogno di trovare il punto X1(x,y) che si trova nell'intersezione delle pararallele di A-B e B-C a una distanza H sulla bisettrice dell'angolo formato dai 3punti A B C.

Ringrazio in anticipo chiunque voglia aiutarmi.

Risposte
Magma1
Un punto è dato dall''intersezione di due rette, ossia è la soluzione di un sistema lineare di due equazioni.
Se $A,B,C$ sono noti ti puoi ricavare le equazioni della retta avente direzione $AB$ e $BC$, inoltre esse noto anche $H$ puoi trovare anche l'equazione delle parallele a tali rette. Non resta che risolvere il sistema.

andramk
Il fatto che si possa fare mi è chiaro ma il come farlo è tutt'altra questione.
Purtroppo dai scontate nozioni che mi son perso per strada due decadi fa comunque dalla tua risposta son riuscito a fare alcune ricerche e ho trovato le formule per calcolare l'intersezione di due rette date da due coppie di punti.

Rifacendomi a questo vecchio post
https://www.matematicamente.it/forum/viewtopic.php?f=15&t=8793

Il risultato è il seguente

         
         m1 = ( pA.y - pB.y ) / ( pA.x - pB.x);
         m2 = ( pC.y - pD.y ) / ( pC.x - pD.x);
         
         q1 = ( pA.x * pB.y ) - ( pB.x * pA.y ) / ( pA.x - pB.x );
         q2 = ( pC.x * pD.y ) - ( pD.x * pC.y ) / ( pC.x - pD.x ); 
         
         pI.x = ( q2 - q1 ) / ( m1 - m2 );
         pI.y = m1 * pI.x + q1;


In teoria funziona ma non ho ancora avuto modo ti testare l'algoritmo.
Quello che mi manca è come ricavare i punti pA - pB e pC - pD appartenenti alle rette parallele di distanza h definite dai punti a - b e b - c

Sebastiantum
Se vuoi risolvere il problema in generale non è banale. Serve sapere trigonometria e un po di analisi.
Riguardo al programma per me è arabo, io capisco solo python e matematichese!
Poi dipende anche da quanto vuoi fare la cosa generale, se vuoi farla al massimo della generalità viene fuori un bel macello, poco ma sicuro. Se almeno fissassi le due rette rosse, e quindi mi dai i coefficienti angolari e magari fissi anche la distanza $H$, le cose si semplificherebbero di tantissimo. Come metodo generale per risolvere il problema io farei cosi:
$1)$ Trovo le equazioni delle due rette rosse, chiamo $r_1$ la retta passante per $AB$ e $r_2$ la retta passante per $BC$
$2)$ Conoscendo $H$ e l'angolo che la retta $r_1$ forma con l'asse $x$ (che è l'arcotangente del suo coefficiente angolare), si può, risolvendo triangoli, ricavare il punto dove la retta parallela ad $r_1$ interseca l'asse $x$. Chiamo $p_1$ questa distanza.
Allora la retta passante per $p_1$ e parallela ad $r_1$ è semplicemente $r_1$ traslata a destra di $p_1$. $r_1$ avrà equazione del tipo $f_1(x)=m_1x$ dove $m_1$ è il suo coefficiente angolare. Per traslarla basta sottrarre $p_1$ alla variabile $x$ perciò esce fuori che l'equazione della retta parallela ad $r_1$ è $F_1(x)=m_1(x-p_1)$. Seguirei un procedimento identico per $r_2$ (rivedi sopra mettendo a pedice $2$ al posto di $1$).
$3)$ Una volta trovate le due equazioni per le due rette $F_1(x)$ e $F_2(x)$, basta intersecarle, che significa risolvere il sistema:${(F_1(x)=m_1(x-p_1)),(F_2(x)=m_2(x-p_2)):}$ che si risolve ponendo $F_1(x)=F_2(x)$ che corrisponde a risolvere $m_1(x-p_1)=m_2(x-p_2)$ da quest'ultima ricavo la $x$ del punto di intersezione, che chiamo $x_i$, per ricavare la $y_i$ basta sostituirla in una delle due rette per esempio la prima cioè: $y_i=F_1(x_i)=m_1(x_i-p_1)$.
Se servono chiarimenti chiedi pure!

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