anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
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...
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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. |
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
talmente banale che la tua soluzione è errata, ma comunque mi è stata di aiuto e ispirazione nel risolvere il problema...
per chi è interessato posto una valida soluzione:
Codice sorgente - presumibilmente Algoritmi |
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
|
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da anthony015:
talmente banale che la tua soluzione è errata, 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. |
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
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...
|
|
nikipe_silver (Founder Member)
Expert
Messaggi: 339
Iscritto: 20/09/2005
|
mi spiace ma la soluzione di hedo e' corretta matematicamente...piu' probabile che hai sbagliato a interpretarla...cosa piuttosto semplice, in effetti..
|
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
ho provato anche copiando il codice pari pari, che sbagli il compilatore??
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
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... |
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
mi prendi in giro?
ti devo scrivere il codice provato precedentemente o ti fidi?
ps: non veniva completamente errato, "soltanto" veniva sballato di una ventina di pixel
|
|