Voronoi Kafesleri oluşturmak için boru hattı


10

3D Voronoi desenleri oluşturmak için bir Maya eklentisi (bu soru Maya'dan bağımsızdır) uygulamak istiyorum.

resim açıklamasını buraya girin

Sadece nokta örneklemesinden başlamam gerektiğini biliyorum ( bu makalede açıklanan uyarlanabilir poisson örnekleme algoritmasını uyguladım ).

Ben, bu noktalardan, Voronoi uygulayarak örgü 3D tel oluşturmak gerektiğini düşündüm ((Python) scipy.spatial.Voronoi kullanmaya çalıştım ama sonuç beklediğimden farklı bir şeydi).

Bir şey mi eksik? Herkes bu tür desenler oluşturmak için uygulamak zorunda uygun boru hattı ve algoritmalar önerebilir?

[EDIT] Burada scipy.spatial.Voronoi ( burada önerildiği gibi) elde sonucu elde ne elde birkaç örnek :

vor = Voronoi(points)
for vpair in vor.ridge_vertices:
    for i in range(len(vpair) - 1):
        if all(x >= 0 for x in vpair):
            v0 = vor.vertices[vpair[i]]
            v1 = vor.vertices[vpair[i+1]]
            create_line(v0.tolist(), v1.tolist())

Gri köşeler örneklenen noktalardır (orijinal şekil basit bir küreydi): resim açıklamasını buraya girin

İşte daha karmaşık bir şekil (bir kol) resim açıklamasını buraya girin


Cevabınız için teşekkür ederim. Yaptığım şeyi kopyalayacağım ve önerildiği gibi bir ekran yayınlayacağım. Her neyse, bu sorunun nihai amacı kodumu hata ayıklamak değil, ne yaptığımı doğru mu yoksa aralarında eksik olduğum başka adımlar olup olmadığını anlamak için!
Jiloc

önerildiği gibi örnekler eklendi!
Jiloc

Poisson örneklemesinden alınan puanlar doğrudur. Onları üreten algoritma tamamen birim test edilir ve ekranlarda gördükleriniz, Voronoi'yi (puanlar) çağırmadan önce programlı olarak oluşturduğum örneklenen noktada merkezle kürelerdir! Doğru yolu
izlemediğimden

Gösterdiğiniz görüntüler 2d işlevinde voronoi yaptı.
joojaa

@joojaa Örnek görüntülerden 2B yüzeydeki Voronoi hücre kenarlarının gerekli olduğunu bekledim (3B'de verilecek düzlem kesitlerinin toplanması yerine, küre yüzeyinde noktaları birleştiren bir çizgi segmenti koleksiyonu vermek için) . Bununla birlikte, scipy.spatial.Voronoi , içlerine yerleştirilmiş yüzeyler yerine N boyutlu uzaylar için tasarlanmış gibi görünmektedir. Bir 2D yüzeyle kısıtlanmış 3D noktalar için nasıl kullanılacağını hemen göremiyorum.
trichoplax

Yanıtlar:


1

http://www.cs.sandia.gov/~samitch/papers/vor_final.pdf Herhangi bir programlama dilinde bilgisayar algoritması yoktur, ancak bazı Düzlem Yansımaları ve yukarıdaki bağlantı.


ComputerGraphics.SE'ye hoş geldiniz! Yığın Değişimi ile ilgili yanıtlar vermek normalde iyi bir fikirdir (örneğin bağlantıların aşağı inmesi ve genel olarak insanların bir cevabın kendileri için yararlı olup olmadığını söyleyebilmek için bağlantıları takip etmeleri gerekmez). Makalenin içeriğinin kısa bir özetini ekleyerek cevabınızı iyileştirmek isteyebilirsiniz.
Martin Ender
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.