Tady je nápad. Namísto vytváření každého obdélníku (x, y, width, height), instanci jim (x1, y1, x2, y2), nebo alespoň si to interpretují tyto hodnoty s ohledem na šířku a výšku.
Tímto způsobem si můžete zkontrolovat, které obdélníky mají podobný xnebo yhodnotu a ujistěte se, že odpovídající obdélník má stejnou sekundární hodnotu.
Příklad:
Obdélníky jste dali mají následující hodnoty:
- Náměstí 1: [0, 0, 8, 3]
- Square 3: [0, 4, 8, 6]
- Square 4: [9, 0, 10, 4]
Za prvé, budeme porovnávat Square 1se Square 3(bez kolizí):
- Porovnat hodnoty x
- [0, 8] až [0, 8] Jedná se o naprosto stejné, takže není crossover.
- Porovnejte hodnoty y
- [0, 4] [3, 6] Žádný z těchto čísel jsou podobné, takže jsou není faktorem
Dále musíme porovnat Square 3se Square 4(kolizi):
- Porovnat hodnoty x
- [0, 8] až [9, 10] Žádný z těchto čísel jsou podobné, takže jsou není faktorem
- Porovnejte hodnoty y
- [4, 6] [0, 4] obdélníky mají číslo 4 společného, ale 0! = 6, a proto je zde kolize
Tím, že jsme věděli, že ke kolizi dojde, takže tento způsob skončí, ale umožní zhodnotit Square 1a Square 4pro některé další jasnosti.
- Porovnat hodnoty x
- [0, 8] až [9, 10] Žádný z těchto čísel jsou podobné, takže jsou není faktorem
- Porovnejte hodnoty y
- [0, 3] až [0, 4] obdélníky mají číslo 0 společného, ale 3! = 4, a proto je zde kolize
Dejte mi vědět, pokud budete potřebovat žádné další podrobnosti :)