Çokgenler başka bir çokgenin içine nasıl paketlenir?


20

Kenarları birbirine dikerek hokkabazlık topları inşa etmek istediğim birkaç deri levha sipariş ettim. Topların şekli için Platonik katılar kullanıyorum.

Deri çarşafları tarayabilir ve deri çarşafın şekline yaklaşan bir çokgen oluşturabilirim (bildiğiniz gibi, bu hayvan derisi ve dikdörtgenlere girmez).

Şimdi, hokkabazlık topumun boyutunu en üst düzeye çıkarmak istiyorum.

Örneğimde, çokgenler normaldir, ancak basit çokgenleri olan bir çözüm arıyorum.

Çokgenlerime uygulayabileceğim en büyük ölçek faktörü nedir, böylece hepsinin sayfa içine sığması sağlanır?

Mümkün olduğunca malzeme kullanarak israfı en aza indirmeye çalışıyorum.

Açıkçası, çokyüzlü ağın bireysel çokgene kesilmesi, olası kombinasyonun alanını artıracak, aynı zamanda son geometrinin kalitesini de azaltacaktır, çünkü daha fazla dikiş ve biriken hatalar vardır. Ancak bu soru, bir polihedronu açmanın farklı yollarını numaralandırmakla ilgili değildir. Bağımsız olarak düşünülebilirler. Yani çokgenler basit çokgenlerdir.

resmen:

Giriş:

  • P : basit bir çokgen (hedef)
  • S : yerleştirmek istediğim çokgen seti
  • G, : basit çokgen grafiği - her düğüm basit bir çokgeni temsil eder ve her bir çokgen çifti arasında ortak bir kenarı paylaşan bir kenar kenarı vardır SnS
  • α> =0,β> =0 (malzeme kullanımı ve bağlantı)

Çıktı:

  • ölçek faktörüf
  • G'H , bir alt diyagramıG,
  • V ( G )LÖc : cinsinden her çokgen için bir konum ve açıV(G,)
  • çözeltinin kalitesinin bir ölçüsü :m = α . f + β . | E ( H ) |mm=α.f+β.|E('H)||E(G,)|

Aşağıdaki koşullara bağlı olarak en üst düzeye çıkarın :m

  • |V('H)|=|V(G,)| (1)
  • |E('H)|<=|E(G,)| (2)
  • her çokgen için olarak , bir faktör ile ölçeklenir konumu aynı içinde olduğu (3)SbenSSbenfLoc(Si)P
  • deki çokgenler üst üste gelmez (4)V('H)

(V (G), grafikteki köşe noktalarıdır ve S, çokgenler kümesidir, ancak aynı nesne kümesini tanımlarlar. Belki de bunu yapmanın daha kompakt bir yolu vardır.)

Koşulların açıklaması:

  • (1) Tüm çokgenlerin son düzende olmasını istiyorum
  • (2) Gerekirse bazı bağlantılar kesilebilir
  • (3) (4) Top deriden yapılmıştır

İşte hedef çokgen Deri levha

İşte ben paketi istiyorum çokgen kümesi: Çokyüzlü ağ


Kesmek istediğiniz dışbükey çokgenlerden mi bahsediyorsunuz ?
A.Schulz

Benim durumumda çokgenler düzenli, çünkü bunlar Platonik katıların yüzleri. Ancak basit çokgenleri paketlemek de işe yarayacaktır. Paketlemek istediğim çokgenlerin dışbükey olup olmadığını neden öğrenmek istiyorsun?
alecail

1
Çokgenler dışbükey değilse, her zaman orijinal çokgenin içine kesmeden tek bir dışbükey olmayan çokgen yerleştirebilirsiniz. Dolayısıyla bu soru genel çokgenler için anlamlı olmaz.
A.Schulz

Bunun önemli olup olmadığını bilmiyorum, ancak sınırlayıcı poligon (deri) dışbükey mi yoksa içbükey olabilir mi?
Paresh

4
Bir karede maksimum sayıda kareyi paketlemenin çok daha basit sorunu bile zor görünüyor (özür dilerim, kullanışlı bir bağlantı yok, ancak bunun birkaç ay önce tartışılması üzerine tökezledi). Sadece çokgenleri elle oynatın, muhtemelen optimumdan çok uzakta olmazsınız.
vonbrand

Yanıtlar:


3

Bu, Paketleme sorunları olarak adlandırılan sorunların optimizasyon sınıfına aittir . Sizin durumunuzda, konteyner olarak düzenli bir çokgen yerine, düzensiz bir poligonunuz var, ancak fikir aynı kalıyor.
Bu optimizasyon sorunları genellikle NP zordur, bu yüzden kesin çözümü almanın kolay bir yolu olduğunu düşünmüyorum ve tüm kombinasyonları denemek çok pahalı olurdu.
Bu tür sorunlarla ilgilenen bazı insanlar var; Çözülmüş bazı özel paketleme sorunlarının bu bağlantısını buldum: http://www2.stetson.edu/~efriedma/packing.html

Görmenin en kolay yolu, deri tabakanın yaklaşık bir merkezini tanımlamak, çokgen kümesini oraya taşımak ve yukarı ve aşağı ölçeklendirerek ve çokgen kümesinin hedef çokgenin içinde olup olmadığını kontrol ederek, istediğiniz çokgen kümesi için daha yakın ve daha yakın ölçek faktörü 'f'.

Ancak, bu faktörü büyük ölçekli hokkabazlık topları üretimi için kullanmayacaksanız, muhtemelen elle yapmak oldukça yeterli olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.