Rumah > pembangunan bahagian belakang > C++ > Adakah Dua Segi Empat Bertindih?

Adakah Dua Segi Empat Bertindih?

Patricia Arquette
Lepaskan: 2024-12-19 20:29:20
asal
605 orang telah melayarinya

Do Two Rectangles Overlap?

Menentukan Pertindihan Segiempat Segiempat

Dalam senario di mana segi empat tepat selari wujud, tugas penting ialah menentukan sama ada ia bertindih. Coretan kod yang disediakan cuba melaksanakan algoritma untuk tujuan ini, tetapi ia memerlukan penjelasan lanjut.

Untuk menilai pertindihan dengan berkesan, kami boleh menggunakan keadaan matematik berikut:

if (RectA.Left < RectB.Right && RectA.Right > RectB.Left
    && RectA.Top > RectB.Bottom && RectA.Bottom < RectB.Top)
Salin selepas log masuk

Dalam koordinat Cartesian , ini diterjemahkan kepada:

if (RectA.X1 < RectB.X2 && RectA.X2 > RectB.X1
    && RectA.Y1 > RectB.Y2 && RectA.Y2 < RectB.Y1)
Salin selepas log masuk

Mari kita analisa perkara ini dalam perincian:

  • Keadaan 1: Jika tepi kiri Segiempat A berada di sebelah kiri tepi kanan Segiempat B, maka A tidak sepenuhnya berada di sebelah kanan B.
  • Keadaan 2: Jika sisi kanan Segiempat A adalah di sebelah kanan Tepi kiri Segiempat tepat B, maka A tidak sepenuhnya berada di sebelah kiri B.
  • Keadaan 3: Jika tepi atas Segiempat A berada di atas tepi bawah Segiempat B, maka A tidak sepenuhnya di bawah B .
  • Keadaan 4: Jika Segiempat A tepi bawah berada di bawah tepi atas Segiempat B, maka A tidak sepenuhnya di atas B.

Dengan menggabungkan syarat ini menggunakan operator AND, kami memastikan keempat-empat syarat dipenuhi serentak. Ini menetapkan kriteria yang diperlukan dan mencukupi untuk dua segi empat tepat untuk bertindih.

Nota: Kaedah ini boleh dilanjutkan kepada dimensi sewenang-wenangnya, menjadikannya terpakai untuk pelbagai kes penggunaan yang melibatkan objek bukan segi empat tepat. Tambahan pula, dengan melaraskan operator perbandingan, kami boleh mengubah suai syarat untuk menentukan senario pertindihan separa atau lengkap mengikut keperluan.

Atas ialah kandungan terperinci Adakah Dua Segi Empat Bertindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan