Ecco un'idea. Invece di creare ciascun rettangolo con (x, y, width, height), loro istanziare con (x1, y1, x2, y2), o almeno avere lo interpreta questi valori riportati larghezza e altezza.
In questo modo, è possibile verificare quali rettangoli hanno una simile xo ydi valore e assicurarsi che il rettangolo corrispondente ha lo stesso valore secondario.
Esempio:
I rettangoli che avete dato hanno i seguenti valori:
- Square 1: [0, 0, 8, 3]
- Piazza 3: [0, 4, 8, 6]
- Square 4: [9, 0, 10, 4]
In primo luogo, si confronta Square 1a Square 3(collisione):
- Confrontare i valori x
- [0, 8] a [0, 8] Questi sono esattamente gli stessi, quindi non c'è crossover.
- Confrontare i valori y
- [0, 4] a [3, 6] Nessuno di questi numeri sono simili, quindi non sono un fattore
Avanti, mettiamo a confronto Square 3a Square 4(collisione):
- Confrontare i valori x
- [0, 8] a [9, 10] Nessuno di questi numeri sono simili, quindi non sono un fattore
- Confrontare i valori y
- [4, 6] a [0, 4] I rettangoli hanno il numero 4 in comune, ma 0! = 6, pertanto, non v'è una collisione
Con un know sappiamo che si verifichi una collisione, in modo che il metodo si concluderà, ma permette di valutare Square 1e Square 4per un po 'di chiarezza in più.
- Confrontare i valori x
- [0, 8] a [9, 10] Nessuno di questi numeri sono simili, quindi non sono un fattore
- Confrontare i valori y
- [0, 3] a [0, 4] I rettangoli hanno il numero 0 in comune, ma 3! = 4, pertanto, non v'è una collisione
Fatemi sapere se avete bisogno di dettagli in più :)