3D uzay rastgele eksen hizalanmış kutu şekillere bölmek için bir yönteme ihtiyacım var. Şimdilik 2d alanını test amacıyla bölüyorum. Ortaya koyduğum en yakın yaklaşım, boyut olarak bir dikdörtgen (1, 1) tanımlamak ve sonra tüm mevcut dikdörtgenleri X ve Y ekseni arasında değişen iki eşit olmayan dikdörtgene özyineli olarak bölmekti.
Buradaki sorun açıktır. Bu yaklaşım uzun germe çizgileriyle sonuçlanır (kırmızı ile işaretlenmiştir)
Ne istiyorum daha organik görünümlü bir şey (bir örnek dahil)
Yukarıdan aşağıya veya soldan sağa uzun düz çizgiler görün.
Tek kısıtlama, boyutların ayrıntı düzeyini etkilemeden dikdörtgenin minimum boyutunu sınırlamak isteyebileceğimdir. yani en küçük doğrultu saniyeden 1 santimetre kare ise en küçük oda 2 metrekarelik bir alan olmamalıdır.
İdeal olarak algoritma aşağıdaki üç kısıtlamayı da karşılamalıdır:
- Dikdörtgenler sonsuz küçük değildir.
- Rekt boyutları, en küçük rekt boyutunun ayrık çarpımı değildir. örneğin, en küçük rektin 3 kare birimi olması halinde, büyük rektlerden 6, 9, 12 ve benzeri kare birimlerle sınırlandırılmaz ve bunun yerine 3,2 veya 4,7 olabilir).
- Algoritma polinom zamanında çalışır (hızlı hesaplanması gerekir).