Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Rettangoli che si 'attraggono' (questione di x e y e non solo di java)
Forum - Java - Rettangoli che si 'attraggono' (questione di x e y e non solo di java)

Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 15:51
Venerdė, 13/07/2012
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:

PM Quote
Avatar
corin7 (Normal User)
Newbie


Messaggi: 7
Iscritto: 08/07/2012

Segnala al moderatore
Postato alle 15:46
Lunedė, 16/07/2012
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 ;)



PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 10:43
Venerdė, 20/07/2012
6 stato a dir poco eccezionale :) grazie 1000 ;)
non č che riusciresti a postarmi un semplice esempio 8-|

Ultima modifica effettuata da bububs il 20/07/2012 alle 11:57
PM Quote