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 - Come capire se un rettangolo è dentro un altro??
Forum - Java - Come capire se un rettangolo è dentro un altro??

Avatar
Sylar93 (Ex-Member)
Newbie


Messaggi: 5
Iscritto: 30/06/2010

Segnala al moderatore
Postato alle 21:06
Mercoledì, 06/04/2011
Ciao a tutti!
Il mio problema è piuttosto banale, ma dato che ci ho ragionato sopra per un pò e non sono riuscito a trovare una sluzione, ho deciso di chiedere quì:
Allora...stò sviluppando un simulatore di circuiti logici (quelli con le porte logiche, per intenderci) e adesso ho bisogno di fare un rettangolo di selezione, per selezionare più porte contemporaneamente (una cosa simile a quella che compare dentro le cartelle o sul desktop per permattere di selezionare più icone contemporaneamente). Il mio problema non è come riuscire ad ottenere il rettangolo, ma come fare a capire quali sono le porte che devono essere selezionate...
...lo so...non sono bravo a spiegare le cose :D ...perciò, ho allegato un'immagine...
nell'immagine, tutte e cinque le porte dovrebbero essere selezionate, ma non riesco a trovare cosa abbiano in comune che io possa controllare per tutte e cinque...
le porte, le considero come rettangoli, ed ho i dati (coordinate, larghezza e altezza) per tutte le porte e anche per il rettangolo di selezione...
...scusate ancora per le mie scarse doti di spiegazione :rotfl: spero che abbiate capito ugualmente...
Grazie a tutti in anticipo!!


Sylar93 ha allegato un file: screen.png (29161 bytes)
Clicca qui per guardare l'immagine
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
3
Down
V
Segnala al moderatore
Postato alle 21:23
Mercoledì, 06/04/2011
innanzitutto devi stabilire se basta solo una parte della porta all'interno del rettangolo di selezione per selezionare la porta.

detto questo la via è molto semplice, definisci una funzione che ti dice se un punto è dentro un rettangolo (bastano due confronti sulle coordinate), dopodichè puoi capire se una porta è dentro il rettangolo di selezione se i suoi vertici sono tutti e 4 dentro il rettangolo :) (oppure solo uno se permetti la selezione parziale della porta)


Grazie per la risposta!! ...era davvero semplice, mi è riuscito alla perfezione!! grazie! - Sylar93 - 06/04/11 21:33
nel tuo caso (AABB) bastano solo i due vertici della prima diagonale ;-) - TheKaneB - 06/04/11 22:11
PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Up
0
Down
V
Segnala al moderatore
Postato alle 5:07
Giovedì, 07/04/2011
http://download.oracle.com/javase/1.5.0/docs/api/java/awt/ ...

Intersects è il metodo che ti interessa.


Il mio blog: https://piero.dev
PM