Saya memiliki dua kotak pembatas objek-selaras (yaitu tidak sejajar sumbu, mereka berputar dengan objek) Saya ingin tahu apakah dua kotak objek-tumpang tindih. ( Sunting: catatan - Saya menggunakan kotak uji bounded aligned untuk dengan cepat membuang objek yang jauh, jadi tidak masalah jika rutin quad sedikit lebih lambat. )
Kotak saya disimpan sebagai empat x, poin y. Saya telah mencari-cari jawaban, tetapi saya tidak dapat memahami nama variabel dan algoritma dalam contoh untuk menerapkannya pada kasus khusus saya.
Dapatkah seseorang membantu menunjukkan kepada saya bagaimana ini akan dilakukan, dengan cara yang jelas dan sederhana? Terima kasih. (Bahasa tertentu tidak penting, kode pseudo gaya-C adalah OK.)
sumber
Cara yang lebih mudah mungkin adalah dengan menguji setiap simpul kotak B terhadap setiap sisi kotak A (menghitung jarak yang ditandatangani). Dengan cara ini Anda dapat mengklasifikasikan setiap simpul sebagai "di depan" atau "di belakang" segmen.
Jika semua verteks B diklasifikasikan sebagai "di depan" salah satu segmen A, B dan A tidak tumpang tindih; jika tidak, mereka melakukannya.
Ini agak terlibat, jadi Anda mungkin mendapatkan beberapa peningkatan kinerja dengan melakukan pemeriksaan lingkaran-lingkaran terlebih dahulu, menggunakan lingkaran pembatas dari kotak (sepele untuk menghitung)
sumber