Hier is een idee. In plaats van elke rechthoek met (x, y, width, height)Instantieer hen (x1, y1, x2, y2), of tenminste zij deze waarden de breedte en hoogte interpreteren.
Op die manier kunt u controleren welke rechthoeken een soortgelijke hebben xof ywaarde en zorg ervoor dat de overeenkomstige rechthoek heeft dezelfde secundaire waarde.
Voorbeeld:
De rechthoeken u gegeven heb de volgende waarden:
- Vierkant 1: [0, 0, 8, 3]
- Vierkant 3: [0, 4, 8, 6]
- Square 4: [9, 0, 10, 4]
Ten eerste, we vergelijken Square 1met Square 3(botsing):
- Vergelijk de x-waarden
- [0, 8] op [0, 8] Dit zijn precies hetzelfde, dus er is geen crossover.
- Vergelijk de y-waarden
- [0, 4] om [3, 6] Geen van deze nummers op elkaar lijken, zodat ze niet een factor
Vervolgens hebben we vergelijken Square 3met Square 4(botsing):
- Vergelijk de x-waarden
- [0, 8] [9, 10] Geen van deze nummers op elkaar lijken, zodat ze niet een factor
- Vergelijk de y-waarden
- [4, 6] tot [0, 4] De rechthoeken het nummer 4 gemeen, maar 0! = 6, is er dus een botsing
Door kennis weten we dat een botsing zal optreden, zodat de methode zal eindigen, maar laat te evalueren Square 1en Square 4voor wat extra duidelijkheid.
- Vergelijk de x-waarden
- [0, 8] [9, 10] Geen van deze nummers op elkaar lijken, zodat ze niet een factor
- Vergelijk de y-waarden
- [0, 3] tot [0, 4] De rechthoeken het nummer 0 gemeen, maar 3! = 4, dan is er een botsing
Laat het me weten als u extra informatie nodig hebt :)