Oppure

Loading
06/04/11 19:06
Sylar93
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!!
aaa
06/04/11 19:23
HeDo
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)

aaa
07/04/11 3:07
pierotofy
download.oracle.com/javase/1.5.0/docs/api/java/awt/…

Intersects è il metodo che ti interessa.
Il mio blog: piero.dev