VTK

2016-03-24 35 views
1

'de ayrıştırmadan sonra sabit sayıda köşe nasıl elde edilir? 3D mesh işleme için VTK ile çalışıyorum. Ağım var ve azaltma işlemini yapmak için vtkDecimatePro() işlevini kullanıyorum. Fonksiyonun kendisi TargetReduction kabul eder, bu da üçgen sayısındaki azalmaya bağlıdır (yüzde). Sorun şu ki, sabit bir sayıda köşeye ihtiyacım var, örneğin tüm kafeslerimin 2000 köşesine sahip olmasını istiyorum. Şu anda bunu, açmayı, sabit bir sayıdaki köşeye sınırlamaya izin veren openflipper adlı bir yazılımda yapıyorum. Ancak, VTK'de bu görevi nasıl gerçekleştireceğimi bilmiyorum.VTK

Herhangi bir öneriniz için teşekkürler.

cevap

1

İstenen köşe sayısını ayarlamak mümkün değildir. Bu şekilde çalışmıyor. Hedef azaltma bile yaklaşık olarak eşittir ve tam olarak numaralı köşe sayısını almanız garanti edilmez. Cevabınız için

+0

Teşekkür @mirni ama işlevini düşünüyorum

Miro

// desiredN is the desired number of vertices after reduction double f = static_cast<double>(desiredN)/poly->GetNumberOfVertices(); //... decimate->SetTargetReduction(1.0 - f); // We want to preserve topology so that reduction factor applies to vertices // (otherwise it prescribes reduction in number of faces) decimate->SetPreserveTopology(1); 

hth _SetTargerReduction_:

Yapabileceğin Ne, çok basit bir şekilde azaltma faktörünü hesaplamak ve bu ayarlanır Üçgenlerin sayısındaki azalma faktörüdür (Not Vertices). Ben bu şekilde kullandım ve üçgen sayısı bakımından azalma iyi; Bununla birlikte, köşe sayısında bir azalmayı düzeltemedim. OpenFlipper'da bunun nasıl yapıldığını merak ediyorum, çünkü istediğiniz köşe sayısını tanımlayabiliyorsunuz ve şimdiye kadar her zaman bu sayıda köşe ile bir örgü üretiyor. –

+0

Roger, topikallerin sayısı ve yüzleri bir topolojik değişmezlik oluşturmak için Euler formülü aracılığıyla bağlanır, bu nedenle topolojiyi korumak için zorlarsanız, ağlar makul ölçüde güzelse, yani yüzlerin sayısı ve yüz sayısı aynı miktarda değişmelidir. vert sayısı ile karşılaştırıldığında az sayıda delik/saplı manifoldlar. Pratikte bu, verr ve n yüzlerin tutarlı bir şekilde değişmesini sağlamak için "DecPreserveTopology (1)" parametresinde istediğiniz filtrede kullanmak istediğiniz anlamına gelir. – mirni

+0

Teşekkürler, şimdi testler yapıyor –