Εδώ είναι μια ιδέα. Αντί της δημιουργίας κάθε ορθογώνιο με (x, y, width, height), υπόσταση τους με (x1, y1, x2, y2), ή τουλάχιστον την έχουν ερμηνεύσει αυτές τις τιμές που δίνονται το πλάτος και το ύψος.
Με αυτόν τον τρόπο, μπορείτε να ελέγξετε ποια ορθογώνια έχουν παρόμοια xή yαξία και βεβαιωθείτε ότι το αντίστοιχο ορθογώνιο έχει την ίδια δευτερεύουσα αξία.
Παράδειγμα:
Τα ορθογώνια που έχουν δώσει έχουν τις ακόλουθες τιμές:
- Square 1: [0, 0, 8, 3]
- Square 3: [0, 4, 8, 6]
- Square 4: [9, 0, 10, 4]
Κατ 'αρχάς, συγκρίνουμε Square 1με Square 3(χωρίς σύγκρουση):
- Συγκρίνετε τις τιμές x
- [0, 8] στο [0, 8] Αυτά είναι ακριβώς το ίδιο, οπότε δεν υπάρχει crossover.
- Συγκρίνετε τις τιμές y
- [0, 4] έως [3, 6] Κανένα από αυτά τα νούμερα είναι παρόμοια, έτσι δεν είναι ένας παράγοντας
Στη συνέχεια, συγκρίνουμε Square 3με Square 4(σύγκρουση):
- Συγκρίνετε τις τιμές x
- [0, 8] έως [9, 10] Κανένα από αυτά τα νούμερα είναι παρόμοια, έτσι δεν είναι ένας παράγοντας
- Συγκρίνετε τις τιμές y
- [4, 6] έως [0, 4] Οι ορθογώνια έχουν τον αριθμό 4 στο κοινό, αλλά το 0! = 6, ως εκ τούτου, υπάρχει μια σύγκρουση
Με την τεχνογνωσία γνωρίζουμε ότι η σύγκρουση θα συμβεί, οπότε η μέθοδος θα τελειώσει, αλλά επιτρέπει την αξιολόγηση Square 1και Square 4για κάποια επιπλέον σαφήνεια.
- Συγκρίνετε τις τιμές x
- [0, 8] έως [9, 10] Κανένα από αυτά τα νούμερα είναι παρόμοια, έτσι δεν είναι ένας παράγοντας
- Συγκρίνετε τις τιμές y
- [0, 3] στο [0, 4] Οι ορθογώνια έχουν τον αριθμό 0 κοινά, αλλά 3! = 4, ως εκ τούτου, υπάρχει μια σύγκρουση
Επιτρέψτε μου να μάθω αν χρειάζεστε οποιαδήποτε επιπλέον λεπτομέρειες :)