Oppure

Loading
05/06/11 17:28
anthony015
sapendo che ho due segmenti che vanno da un pixel che conosco ad un altro pixel che conosco, come potrei fare per determinare il punto di incontro? io avevo pensato a mettere a sistema le equazione(come si fa matematicamente), ma trovo molte difficoltà a risolvere questo sistema...
aaa
05/06/11 18:17
HeDo
Postato originariamente da anthony015:

sapendo che ho due segmenti che vanno da un pixel che conosco ad un altro pixel che conosco, come potrei fare per determinare il punto di incontro? io avevo pensato a mettere a sistema le equazione(come si fa matematicamente), ma trovo molte difficoltà a risolvere questo sistema...


????

ti calcoli le rette passanti per gli estremi dei segmenti

m = (y2 - y1) / (x2 -x1)
q = y1 - ((y2 - y1) / (x2 - x1)) * x1

dopodichè le metti a sistema:

| y = m1 * x + q1
| y = m2 * x + q2

m2 * x + q2 = m1 * x + q1

x(m2 - m1) = q1 - q2

| x = (q1 - q2) / (m2 - m1)
| y = m1 * ((q1 - q2) / (m2 - m1)) + q1

x e y sono le coordinate dell'intersezione

è algebra del primo anno delle superiori.
aaa
06/06/11 14:36
anthony015
talmente banale che la tua soluzione è errata:pat:, ma comunque mi è stata di aiuto e ispirazione nel risolvere il problema...
per chi è interessato posto una valida soluzione:
a=linee[1].getIY();//Coordinate Y del punto 1 della prima retta
b=linee[1].getFY();//      ""       Y   ""     ""   2    ""      ""      ""
c=linee[1].getIX();//      ""        X   ""     ""   1    ""      ""      ""
d=linee[1].getFX();//      ""       X   ""     ""   2    ""      ""      ""
e=linee[2].getIY();//      ""       Y   ""     ""   1    ""   seconda ""
f=linee[2].getFY();//      ""       Y   ""     ""   2    ""      ""      ""
g=linee[2].getIX();//      ""       X   ""     ""   1    ""      ""      ""
h=linee[2].getFX();//      ""      X   ""     ""   2    ""      ""      ""
yToRet=((b-a)*e*h+(a-b)*f*g+(b*c-a*d)*f+(a*d-b*c)*e)/((b-a)*h+(a-b)*g+(c-d)*f+(d-c)*e);//Coordinata Y punto intersezione
xToRet=(((d-c)*e-a*d+b*c)*h+((c-d)*f+a*d-b*c)*g)/((b-a)*h+(a-b)*g+(c-d)*f+(d-c)*e);//Coordinata X punto intersezione
aaa
06/06/11 15:53
HeDo
Postato originariamente da anthony015:

talmente banale che la tua soluzione è errata:pat:, ma comunque mi è stata di aiuto e ispirazione nel risolvere il problema...
per chi è interessato posto una valida soluzione:


mi dispiace ma la mia soluzione l'ho controllata due volte con derive, e ti assicuro che è giusta :)

invece che postare sul forum una domanda inutile perchè non ti sei messo da subito a lavorarci? oltre al fatto che non mi piace venir trattato così, soprattutto quando uno ha fatto lo sbattimento di perdere del proprio tempo ad aiutare il prossimo.

se ti servirà aiuto in futuro non cercarlo da me.
aaa
06/06/11 17:07
anthony015
ho semplicemente usato il tuo classico approccio nei confronti di un utente in difficoltà, inoltre ho testato a livello software la tua soluzione e in base ai risultati l'ho ritenuta errata...
aaa
06/06/11 19:57
nikipe_silver
mi spiace ma la soluzione di hedo e' corretta matematicamente...piu' probabile che hai sbagliato a interpretarla...cosa piuttosto semplice, in effetti..
aaa
06/06/11 20:05
anthony015
ho provato anche copiando il codice pari pari, che sbagli il compilatore??
aaa
06/06/11 21:25
HeDo
Postato originariamente da anthony015:

ho provato anche copiando il codice pari pari, che sbagli il compilatore??


non devi copiare e incollare, non è codice, non è racchiuso tra tag code :)

sono le operazioni che devi svolgere, due secondi di interpretazione e puoi tradurlo in codice...
aaa