Saya mencoba untuk menutupi poligon cekung sederhana dengan persegi panjang minimum. Persegi panjang saya bisa panjang, tetapi memiliki lebar maksimum, dan poligon tidak akan pernah memiliki sudut yang akut.
Saya berpikir tentang mencoba menguraikan polong cekung saya menjadi segitiga yang menghasilkan satu set persegi panjang minimum yang tumpang tindih minimal mengikat setiap segitiga dan kemudian menggabungkan persegi panjang itu menjadi yang lebih besar. Namun, saya tidak berpikir ini akan bekerja untuk takik kecil di tepi poligon. Segitiga yang dibuat oleh simpul refleks pada takikan tersebut akan membuat persegi panjang yang salah. Saya mencari persegi panjang yang akan menjangkau / mengabaikan takikan.
Saya tidak benar-benar tahu apa-apa tentang geometri komputasi, jadi saya tidak begitu yakin tentang bagaimana mulai mengajukan pertanyaan.
Saya menemukan posting lain yang serupa, tetapi bukan yang saya butuhkan:
- pisahkan poligon menjadi jumlah minimum segi empat dan segitiga
- Meliputi poligon sewenang-wenang dengan jumlah kuadrat minimum
- Temukan persegi panjang sehingga mencakup jumlah maksimum poin
- Algoritma untuk menemukan persegi panjang paling sedikit untuk mencakup satu set persegi panjang
Beberapa contoh: Hitam adalah input. Merah adalah output yang bisa diterima.
Contoh lain: Output kedua lebih disukai. Namun, menghasilkan kedua output dan menggunakan faktor lain untuk menentukan preferensi mungkin diperlukan dan bukan tanggung jawab algoritma ini.
Poligon yang menyerupai kurva sangat langka. Dalam skenario ini, sebagian besar area persegi panjang terbuang sia-sia. Namun, ini dapat diterima karena setiap persegi panjang mematuhi batasan lebar maks.
Juga, saya menemukan artikel ini dekat dengan apa yang saya butuhkan:
- Ditutupi dengan potongan persegi panjang oleh Paul Iacob, Daniela Marinescu, dan Cristina Luca
Mungkin pertanyaan yang lebih baik adalah "Bagaimana saya bisa mengidentifikasi bagian seperti poligon cekung berbentuk segi empat?"
Berikut adalah gambar yang menunjukkan implementasi yang diinginkan:
Hijau adalah penggunaan material yang sebenarnya. Kotak merah adalah tata letak. Biru adalah MBR dari seluruh poligon. Saya pikir saya harus mencoba untuk mendapatkan MBR kecil dan mengisinya. 2-3 persegi hijau di sudut kiri atas yang berakhir di tengah poligon mahal. Itulah yang ingin saya perkecil. Persegi hijau memiliki min dan max lebar dan tinggi, tapi saya bisa menggunakan banyak baris dan kolom yang diperlukan untuk menutupi suatu daerah. Sekali lagi, saya harus meminimalkan jumlah persegi panjang yang tidak menjangkau input. Saya juga bisa memodifikasi bentuk persegi panjang hijau agar pas di tempat-tempat kecil yang juga sangat mahal. Dengan kata lain, mendapatkan bujur sangkar sebanyak mungkin untuk menjangkau sebanyak mungkin adalah ideal.