Linea due lati

un saluto a tutti :slight_smile:

Annotazione 2020-09-02 181356

avendo due linee con un punto non proprio centrale

creando una linea due lati e partendo da quel punto, si potrebbe calcolare matematicamente l’inclinazione per ottenere la stessa distanza fra il punto e l’intersezione della linea con le due rette?

Ciao Salvio.
Se ti interessa in metodo analitico penso si possa fare come ti indico di seguito.
Immagino che GH abbia già parecchie funzioni implementate che possano svolgere tutto o buona parte dei calcoli … ma, come sai, di GH non ci capisco nulla!
Per semplificare un po’ i conti traslerei tutto in modo che il punto sia nell’origine, P(X,Y) = P(0,0)
Ricaverei le equazioni delle due rette “a” e “b” nella forma (Y=maX+Qa) e (Y=mbX+Qb).
Userei poi una retta generica passante per il punto (0,0) ovvero (Y=m*X).
Intersecando le rette “a” e “b” con la retta “c”, ottengo due punti generici, appartenenti alle rette ovviamente, Pa(Xa,Ya) e Pb(Xb,Yb)
Le distanze tra il punto e i due punti generici vanno uguagliate:
Sqr((X0-Xa)^2+(Y0-Ya)^2) = Sqr((X0-Xb)^2 + (Y0-Yb)^2)
Sostituendo i vari valori dovremmo ottenere una equazione in “m”, il coefficiente angolare (inclinazione) che stai cercando.
Salvo (probabili) errori di calcolo, mi viene che:

m= (Qa^2mb - Qb^2ma +/- |QaQb||ma-mb|)/(Qa^2 - Qb^2)

1 Mi Piace

ciao Fabio,

wauu grazie per la risposta :+1:

credo di seguire tutto il discorso. forse mi manca l’ultimo passaggio
cerco di mettere nella pratica le formule che hai postate
poi ti aggiorno fino a che punto sono arrivato :slight_smile:

nel senso che con una combinazione di componenti si possa ottenere lo stesso risultato?

Conosco Gh pochissimo, in teoria potrebbe anche avere una funzione già implementata per fare direttamente quello che vuoi …

In generale non penso ci siano però difficoltà a fargli calcolare l’intersezione delle rette con l’asse Y per avere il valore “Q”, né fargli calcolare la tangente con l’asse X per avere il valore “m”.
Poi, sempre se il calcolo è giusto, la formula finale ti dà il coefficiente angolare “m” della retta che cerchi … come darlo in pasto al comando “Linea da due lati” devi dirmelo tu. :thinking:

forse andrebbero bene i comandi di trigonometria nella sezione Math ma non li so usare

vedi se ho inteso bene ciò che spiegavi:
ho creato “provvisoriamente” una linea due lati partendo dal punto P e l’ho estesa fino a quando non si intersecava con le due rette A e B. poi in Gh ho inserito il punto iniziale P e i due punti d’intersezione D e E negli appositi contenitori e li ho collegati al componente Expression inserendo all’interno le formule

nel frattempo sto facendo le prove direttamente in Rh, quindi non ho fatto altro che ruotare la retta “provvisoria” che parte dal punto P e si interseca con le due rette A e B

di sicuro qualcosa mi è sfuggito :thinking: :thinking:
si potrebbe tradurre la formula geometricamente?

pensandola geometricamente mi verrebbe:

date due rette non parallele, r ed s
trovare il raggio della circonferenza con centro c, che interseca le rette r ed s nei punti a, b affinchè il punto c giaccia sulla retta passante per a e b

tra 20 sigarette è risolto :+1:

ciao inno

in genere 20 sigarette (un pacchetto) è la quantità media al giorno che fuma una persona
quindi ci risentiamo domandi?
lo chiedo perchè, se la soluzione poi la dai prima mi fai pensare:
"quante sigarette al giorno fumi? " :wink:

Soluzione manuale.
Modificare il raggio del cerchio fino a quando i due vettori coincidono.
Sarà possibile tradurla in matematica?
lineP.gh (15,3 KB)

in effetti la primissima cosa che avevo pensato di fare all’inizio,
in Rh usare crea cerchio con due tangenze
ovviamente alla fine mi mancava il raggio
che doveva partire dal punto tra le rette

Ciao Salvio.
Ok, le formule ti danno le distanze che però non sono uguali, mi pare.
Se hai modo di spostare le intersezioni con GH in modo da uguagliare le due distanze hai risolto.
Ma il metodo che ho proposto io è analitico, in sostanza disegni la retta alla fine, quando sai come deve essere fatta.
Nelle formule di GH dovresti inserire l’ultima formula, quella che ti dà il coefficiente angolare “m” della retta.
Questa dovrà quindi passare per l’origine (per semplificare i calcoli ho traslato il punto nell’origine) con un angolo, rispetto all’asse X alfa = arctang(m).

ah ok avevo questo dubbio della retta sull’asse X
io ho usato la retta provvisoria e modificato il suo angolo
invece angolo va usato sulla retta dell’asse X che passa per il punto P :+1:

per le coordinate non’è un problema perchè ormai le ho inserite come valori variabili nell’input
il problema è ultima la formula di cui parli, speravo che fosse unica espressione che le racchiudeva.
questa non la so gestire come ho fatto con le altre due,
quindi se la copia all’interno è funziona ok ma se bisogna adattarla a Gh non ne ho la minima idea :smile:

ps giusto per sicurezza, nelle due formule tu usi “Sqr” ma intendevi “Sqrt” come ho messo io?

Sì scusa intendo la radice quadrata.
Nella formula finale devi calcolare prima “Qa” , “Qb”, “ma” ed “mb”.
“Qa” e “Qb” sono l’intersezione delle rispettive rette con l’asse Y, penso GH lo possa fare agevolmente.
“ma” e “mb” sono le tangenti degli angoli che le rette formano con l’asse X.
Anche qui penso che Gh non abbia problemi.
Trovati i quattro valori di cui sopra basta inserirli nell’ultima formula ed ottenere il coefficiente angolare “m” della nostra retta che andrà tracciata passante per l’origine e inclinata rispetto all’asse X di un angolo pari a Arctg(m).
Ripeto che, come spiegare a GH il calcolo delle intersezioni e come tracciare la retta dato un punto e una inclinazione, non sapei come farlo.

Ho cercato di ottenere la retta in questo modo perché all’inizio del post hai chiesto come calcolare matematicamente l’inclinazione …

ok adesso mi è chiaro il ragionamento

ma analizzando il tutto a questo punto, se debbo trovare prima i due punti giusti di intersezione,
conoscere il coefficiente è superfluo essendo che a me interessa creare la linea che passi per
il punto P e che abbia i due raggi della stessa misura che si intersecano con le due rette A e B
in pratica se con le prime due formule mi trovo i due punti creo la linea e stiamo a posto giusto?

c’è solo un problema, che se la formula come l’ho scritta va bene, il risultato non’è identico
c’è qualcosa che sbaglio?

Con il metodo che ti ho indicato io non devi calcolare le coordinate dei punti di intersezione, nella formula finale non compaiono infatti, servono solo i quattro coefficienti che ti ho indicato prima.

Si può procedere in vari modi, se vuoi ricavarti le coordinate dei punti va benissimo, poi basta disegnare la retta che ci passa.
Al di là delle difficoltà di dialogo con GH, credo che il metodo che ho proposto sia il meno oneroso dal punto di vista del calcolo … forse. :blush:

Salvio ho fatto una prova al volo che oggi sono davvero inkasinato, carta e penna e Rhino (ti mando il file).

Retta a: tocca l’asse Y nel punto 3 e ha inclinazione 45 gradi, quindi:
Qa=3 ma=Tg(45)=1

Retta b: tocca l’asse Y nel punto -2 e ha inclinazione 26,57 gradi, quindi:
Qb=-2 mb=Tg(26,57)=1/2

Sostituendo nella formula si ottengono, tra le due soluzioni, il valore -0,5.
L’angolo che per tangente ha -0,5 vale 153,43 gradi.

Retta rossa tracciata dall’origine con angolo di 153,43 gradi … ho splittato i due segmenti e sono lunghi entrambi 2,236 mm.

Retta Salvio.3dm (101,2 KB)

Ciao Salvio.

Spero che grazie alle spiegazioni di Fabio tu sia riuscito a scrivere la definizione. :slight_smile:

Ma ho voluto provare comunque a cercare un’altra soluzione.
( 'Sto problema mi ‘acchiappa’ :smile: )

Una proprieta’ delle mediane di un triangolo dice che la mediana divide in triangolo in due parti con area uguale.

Nel caso delle tue due rette piu’ punto ( P ), abbiamo

( Q e’ l’intersezione delle rette. )
Le due aree B1 e B2 sono uguali.

Iniziamo disegnando la retta PQ e poi la sua perpendicolare passante per P.
Intersechiamo la perpendicolare con le due rette di partenza e otteniamo i punti R e T

Ricaviamo le due aree A1 e A2. Siamo in grado perche’ si tratta di due triangoli rettangoli con vertici noti.

Ora cerchiamo le aree S1 e S2:

Base per altezza diviso 2:
S1 vale e * h / 2
S2 vale e * k / 2

‘h’ e ‘k’ li conosciamo, non conosciamo invece ‘e’

Ricordando che le aree B1 e B2 sono uguali, possiamo scrivere:

B1 = A1 + S1
B2 = A2 - S2

quindi:

A1 + S1 = A2 - S2

sostituendo:

A1 + h * e / 2 = A2 - k * e / 2

da cui ricaviamo

e = 2 * ( A2 - A1 ) / ( h + k )

Data ‘e’, puoi trovare i punti U e V

Ricapitolando:
Ricaviamo le aree A1 e A2 e le distanze ‘h’ e ‘k’.
sostituendo nella formula ricaviamo ‘e’

… Salvo errori ed omissioni, come sempre … :slight_smile:

ciao Emilio,

guardando i tuoi schemi mi sorgono due domande:

  1. il punto P nella tua foto è centrale? (perchè nel mio caso non lo è)
  2. già nella tua prima foto dove indichi che le due aree sono uguali
    riporti una linea in diagonale. ma lo scopo finale è proprio quello.

perchè a quel punto come già in altri post si poteva usare “right trigon”
(spero di aver compreso la tua spiegazione)

Piccola semplificazione.

Se chiamiamo ‘b’ la distanza tra i punti P e Q, allora

2 * A1 = h * b
2 * A2 = k * b

e possiamo scrivere la nostra formula come

e = b * ( k - h ) / ( h + k )

quindi per risolvere basta ricavare le distanze ‘b’, ‘h’ e ‘k’ e inserirle nella formula.


Ciao Salvio

se con centrale intendi equidistante dalle rette, ovviamente no, se no risulta

h = k

e la retta che cerchi e’ quella che passa da R e T

Se non disegno la linea, secondo te come faccio a spiegare la procedura e a indicare punti, rette e triangoli ?

Come vedi sopra, ho aggiornato leggermente la soluzione.
Non dovrebbero servire calcoli sui triangoli.
… Sempre se e’ tutto giusto … :confused:

Dimmi cosa non e’ chiaro e cerchiamo di rimediare. :slight_smile:

@0904 Ti interessa risolvere il problema inipendentemente dall’ approccio utilizzato: analisi, geometrico, numerico? Chiedo perchè, come per altri problemi, questo mi pare si risolva facile con Galapagos.

Versione GH.
Seguendo le istruzioni di Emilio.
line P.gh (11,8 KB)

1 Mi Piace