2
A
回答
2
我該怎麼做:我的模型包含許多不同的基元(三角形,四邊形,圓盤,圓柱體......)。對於每個基元,我可以實現隨機選取方法(例如http://mathworld.wolfram.com/TrianglePointPicking.html)。每個primitve可以計算它的表面積。原始區域越高,生成隨機點的概率就越高。在我的模型我建立的累積列表這樣
class Model{
// ...
vector<pair<double, Primitive*> > primitives_;
}
void Model::AddPrimitive(Primitive* p)
{
double area = p->Area();
if (!primitves_.empty())
area += primitives_.back().first;
primitives_.push_back(make_pair(area, p));
}
當我生成的模型我先選擇一個隨機的原始,然後隨機點上這種原始的隨機點。
Point Model::RandomPoint()
{
double maxArea = primitives_.back().first;
double rnd = maxArea * Uniform01(); // random in [0; maxArea]
Iterator it = std::lower_bound(
primitives_.begin(), primitives_.end(), rnd, FirstLess());
return it->second->RandomPoint();
}
相關問題
- 1. 半球均勻採樣
- 2. 採樣數據不均勻的高斯濾波器
- 3. 採樣不均勻分佈的訓練集
- 4. 非均勻(不規則)採樣數據的系統識別
- 5. 在時間上均勻地重新採樣時間序列
- 6. 限制分層採樣:固定總大小在組間均勻分區
- 7. 通過平均5個均勻樣本的正態隨機數?
- 8. OpenGL中的3D紋理採樣
- 9. 劇情3D直方圖與不均勻的長度數組
- 10. 均勻位置和均勻指數之間的區別?
- 11. 從非均勻數據創建均勻分佈的示例
- 12. THREE.js在複雜模型中均勻地傳播顆粒
- 13. Haskell均勻函數?
- 14. PRNG均勻分佈
- 15. 減少DIV均勻
- 16. GridBagLayout中不均勻的列
- 17. 將非均勻分佈轉化爲均勻分佈
- 18. 標準均勻分佈到離散均勻[a,b]
- 19. 3D模型庫
- 20. Javascript 3D模型
- 21. LWJGL的3D採摘
- 22. 3D採摘lwjgl
- 23. 如何實現nce_loss函數(tensorflow)的負樣本均勻分佈?
- 24. stan/R中的均勻分佈導致抽樣誤差
- 25. 使用Cairo繪製夾緊的均勻三次B樣條
- 26. 用np.random.choice查找非均勻樣本的索引
- 27. 具有不均勻8位成員的結構體的大小不均勻
- 28. 用均勻大小的按鈕填充兩個均勻大小的列
- 29. 模型上的3D 3D繪圖
- 30. 隨機均勻分佈
嗨hansmaad,謝謝你的回答。這是一個有趣的方法,所以我會測試它並發表任何評論。再次感謝 – theosem 2011-03-16 13:29:34
嗨tsemer,我上週寫了這個解決方案。我很高興其他人可以測試它:)結果__look__良好,表現對我來說是好的。請告訴我,如果你發現錯誤或更好的技術。 – hansmaad 2011-03-16 15:17:21