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. 在Z3中从满足赋值集合中均匀采样
- 8. 在时间上均匀地重新采样时间序列
- 9. 从椭圆形置信区域均匀采样
- 10. 不均匀的造型
- 11. 通过卷积将非均匀采样数据网格化为均匀间隔的笛卡尔网格
- 12. 如何比Python更快地采样Python中的不均匀泊松过程?
- 13. 采样集和供电采样集的均值
- 14. 限制分层采样:固定总大小在组间均匀分区
- 15. 通过平均5个均匀样本的正态随机数?
- 16. OpenGL中的3D纹理采样
- 17. 在3D中创建点的非均匀分布
- 18. 剧情3D直方图与不均匀的长度数组
- 19. 计算具有不均匀间隔点的3D梯度
- 20. numpy阵列的子采样/平均
- 21. 观点取样3D网格模型
- 22. 从非均匀数据创建均匀分布的示例
- 23. 均匀位置和均匀指数之间的区别?
- 24. THREE.js在复杂模型中均匀地传播颗粒
- 25. 最近邻图像采样为3D WPF
- 26. PRNG均匀分布
- 27. Haskell均匀函数?
- 28. 非均匀插值
- 29. 非均匀量化
- 30. 减少DIV均匀
嗨hansmaad,谢谢你的回答。这是一个有趣的方法,所以我会测试它并发表任何评论。再次感谢 – theosem 2011-03-16 13:29:34
嗨tsemer,我上周写了这个解决方案。我很高兴其他人可以测试它:)结果__look__良好,表现对我来说是好的。请告诉我,如果你发现错误或更好的技术。 – hansmaad 2011-03-16 15:17:21