Oppure

Loading
13/07/12 13:51
bububs
Ciao a tutti :) sarei interessato a come poter risolvere la questione di 2 rettangoli disegnati e nel caso in cui dovessi spostarne uno e avvicinarlo all'altro dovrebbe avvicinarsi al suo bordo. aiuto pls :hail:
aaa
16/07/12 13:46
corin7
Ciao, se ho capito bene potresti usare un modo per captare la collisione tra rettangoli. Esempio:
ogni qual volta che sposti un rettangolo, penso col il movimento del mouse, potresti tener traccia di tutti i suoi vertici.
Quindi dato un Rectangle2D r:
vertice in alto a sinistra = r.getX(), r.getY();
vertice in alto a destro = r.getX() + r.getWidth(), r.getY();
vertice in basso a sinistra = r.getX(), r.getY() + r.getHeight();
vertice in basso a destro = r.getX() + r.getWidth(), r.getY() + r.getHeight();

ora tieni in una lista tutte le istanze dei rettangoli sul jpanel. Ogni qual volta che sposti un rettangolo fai un for:each su tutti i rettangoli, ovviamente escludendo quello che stai spostando, e controlli che uno o più vertici non siano contenuti in nessun altro rettangolo. Puoi usare il metodo Rectangle2D.contains(Point2D p). In caso si verifichi un rettangolo in collisione puoi sempre forzare il rettangolo che stai spostando a non superare una certa soglia, e di conseguenza a disegnarsi attaccato a quello con cui va in collisione.

E' un po' confusionaria come spiegazione, ma è molto più semplice di quello che pensi ;)


aaa
20/07/12 8:43
bububs
6 stato a dir poco eccezionale :) grazie 1000 ;)
non è che riusciresti a postarmi un semplice esempio 8-|
Ultima modifica effettuata da bububs 20/07/12 9:57
aaa