Iată o idee. In loc de a crea fiecare dreptunghi cu (x, y, width, height), ei instanțiați cu (x1, y1, x2, y2), sau cel puțin să - l interpreteze aceste valori date lățimea și înălțimea.
În acest fel, puteți verifica ce dreptunghiuri au o structură similară xsau yvaloare și asigurați - vă că dreptunghiului corespunzător are aceeași valoare secundară.
Exemplu:
Dreptunghiurile le-ați dat au următoarele valori:
- Piața 1: [0, 0, 8, 3]
- Cadranul 3: [0, 4, 8, 6]
- Piața 4: [9, 0, 10, 4]
În primul rând, vom compara Square 1la Square 3(fără coliziune):
- Comparați valorile x
- [0, 8] la [0, 8] Acestea sunt exact la fel, astfel încât nu există nici o legătură.
- Comparați valorile y
- [0, 4] la [3, 6] Nici unul dintre aceste numere sunt similare, astfel încât acestea nu sunt un factor
În continuare, vom compara Square 3la Square 4(coliziune):
- Comparați valorile x
- [0, 8] la [9, 10] Nici unul dintre aceste numere sunt similare, astfel încât acestea nu sunt un factor
- Comparați valorile y
- [4, 6] la [0, 4] Dreptunghiurile au numărul 4 în comun, dar 0! = 6, prin urmare, există o coliziune
Prin știu că știm că o coliziune va avea loc, astfel încât metoda se va termina, dar vă permite să evalueze Square 1și Square 4pentru unele claritate în plus.
- Comparați valorile x
- [0, 8] la [9, 10] Nici unul dintre aceste numere sunt similare, astfel încât acestea nu sunt un factor
- Comparați valorile y
- [0, 3] la [0, 4] Dreptunghiurile au numărul 0 în comun, dar 3! = 4, prin urmare, există o coliziune
Lasă-mă să știu dacă aveți nevoie de detalii suplimentare :)