Van egy ötletem. Ahelyett, hogy minden téglalap (x, y, width, height), instantiate őket (x1, y1, x2, y2), vagy legalábbis azt értelmezi ezeket az értékeket adott a szélesség és magasság.
Így, akkor ellenőrizze, hogy mely téglalap hasonló xvagy yértéket, és ellenőrizze, hogy a megfelelő négyszög azonos másodlagos értéket.
Példa:
A téglalapok adtál meg a következő értékeket:
- Tér 1: [0, 0, 8, 3]
- Tér 3: [0, 4, 8, 6]
- Square 4: [9, 0, 10, 4]
Először is össze Square 1kell Square 3(nincs ütközés):
- Hasonlítsuk össze az x értékek
- [0, 8] a [0, 8] Ezek pontosan ugyanaz, így nincs crossover.
- Hasonlítsuk össze az y értékek
- [0, 4] [3, 6] Egyik ezek a számok hasonlóak, így ők nem tényező
Ezután összehasonlítjuk Square 3a Square 4(ütközés):
- Hasonlítsuk össze az x értékek
- [0, 8] [9, 10] Egyik ezek a számok hasonlóak, így ők nem tényező
- Hasonlítsuk össze az y értékek
- [4, 6] a [0, 4] A téglalapok a szám 4 közös, de 0! = 6, ezért van egy ütközés
By know tudjuk, hogy egy ütközés következik be, így a módszer akkor ér véget, de lehetővé teszi, értékeli Square 1és Square 4néhány extra tisztaságát.
- Hasonlítsuk össze az x értékek
- [0, 8] [9, 10] Egyik ezek a számok hasonlóak, így ők nem tényező
- Hasonlítsuk össze az y értékek
- [0, 3] a [0, 4] A téglalapok a szám 0 közös, de a 3! = 4, tehát, van egy ütközés
Hadd tudja, ha szüksége további részleteket :)