2010-09-01 16 views
5

Şu anda bir aygıtın kapsadığı alanı bir çalışma dönemi boyunca oluşturmaya çalışıyorum. Bu işlemdeki ilk adım, örtülü alanın çokgenini oluşturuyor gibi görünüyor. Desen standart bir şekil olmadığından, dışbükey gövdeler kaplanan alanı mümkün olan en geniş kapsama alanına atlayarak abartır.Dışbükey olmayan gövdeyi bir dizi noktadan nasıl üretiyorsunuz?

Dışbükey olmayan gövde üretimi kavramını kapsayacak şekilde görünen bir kağıt buldum, ancak bunu yüksek düzeyde bir dilde nasıl uygulayacağınız konusunda bir tartışma yok. http://www.geosensor.net/papers/duckham08.PR.pdf

Aynı sonucu elde etmek için herhangi bir dışbükey gövde veya içbükey gövde veya belki de herhangi bir python kodu oluşturmak için herhangi bir ileri düz algoritma gören oldu mu?

Sınırlı bir başarısı olan sınırlı kenar boyutuyla, çoğunlukla qhull dışbükey gövdelerini denedim. Ayrıca dağıtılamayacak bazı lisanslı kütüphaneleri de fark ettim, bu yüzden maalesef tablodan çıktı. Daha iyi bir fikir veya yemek kitabı mı?

+1

Muhtemelen ilgili bilgi: http://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions – Gilead

+1

Sorun iyi tanımlanmış mı? Eğer noktaları kapsayan herhangi bir * dışbükey olmayan gövde ister misiniz? Ya da bazı ek kısıtlamalar var mı? Merkezde bir eşkenar üçgeni ve dördüncü bir noktayı oluşturan üç nokta düşünün. Bu noktaları çevreleyen (en az) üç olası dışbükey gövde vardır. –

+3

Vay, bu değişik stackexchange sitelerinin tümü, onlara cevap verebilecek kişilerin görünümü dışında, gerçekten de hareketli soruların iyi bir işini yapıyorlar. :( –

cevap

4

Alpha Shapes'e bakmayı deneyebilirsiniz. CGAL kütüphanesi bunları hesaplayabilir.

Edit: Bağladığınız kağıdın alfa şekillerine referans verdiğini ve ayrıca bir algoritma listesi olduğunu görüyorum. Bu senin için yeterince yüksek değil mi? Python'u bir etiket olarak listelediğinizden beri, Python'da algoritmanın uygulanmasının en zor kısmı olduğunu düşündüğüm Delaunay üçgenleme kütüphaneleri vardır; Sadece sonuçlanan üçgenleme çıktısını değiştirebildiğinizden emin olmanız gerekir. Sınır sorgulama işlevleri muhtemelen ilişkilendirilebilir dizilerle uygulanabilir.

+0

Ne yazık ki, CGAL'in python bağlamaları, artık boost-python ve CGAL'in en son sürümlerini derlemediğinizi belirtiyor.Programın artık gerçekten desteklenmediği anlaşılıyor. Başka bir python alternatifi var mı? – conradlee

-1

Bir dizi noktanın dışbükey olmayan gövdesini hesaplamak için an application yazdım (bunu çalıştırmak için java jre'a ihtiyacınız olacak).

+2

Ama sen Kodu paylaşmayacak mısın? –

İlgili konular