2024-05-23 16:13:50 发布
网友
我想生成一个均匀随机的坐标,它在一个由(至少)4个顶点定义的凸边界框内(对于四面体的情况)。在
有人能给我一个可以使用的算法吗?在
谢谢!在
如果一个点是在边界框中生成的,如何检测它是否在几何体外部,而是在框内?在
在你的问题中有很多没有明确的地方,比如你想用什么样的发行版。为了得到这个答案,我假设是均匀分布的。在
处理任意体积均匀分布的简单方法是选择三个均匀随机数作为包围体积的边界直线实体范围内的坐标,然后检查所选坐标是否位于体积内。如果坐标不在体积内,则丢弃它并生成新的坐标。在
如果这是不够的,由于它的非恒定性能或其他任何原因,你将需要约束你的问题(比如说,只有四面体)和做一堆微积分来计算必要的随机分布和模型之间的依赖轴。在
例如,可以从x轴开始,将体积和平面之间的相交形状的面积积分,其中x=t。这将给您一个函数p(x),当标准化时,它是沿x轴的概率密度函数。(如果需要非均匀分布,也需要将其放入集成函数中。)
然后你需要做另一组积分来确定p(y | x0),在给定的x坐标下,y轴上的概率分布函数。最后,需要确定p(z | x0,y0),z轴上的概率分布函数。在
一旦你有了这些,你就需要使用任何随机数算法来选择这些分布中的随机数:首先从p(x)中选择x0,然后用这个算法从p(y | x0)中选择y0,然后用这些算法从p(z | x0,y0)中选择z0,你就会得到你的结果(x0,y0,z0)。在
有多种算法可以确定一个点是否在卷之外,但一个简单的算法可以是:
请注意,您只需在体积移动时重新计算特征平面,而不是为每个随机点重新计算特征平面。在
可能有更好的算法在那里,他们的讨论超出了这个问题和答案的范围。这个算法是我不需要研究就可以想出的,而且可能和气泡排序一样好。在
在你的问题中有很多没有明确的地方,比如你想用什么样的发行版。为了得到这个答案,我假设是均匀分布的。在
处理任意体积均匀分布的简单方法是选择三个均匀随机数作为包围体积的边界直线实体范围内的坐标,然后检查所选坐标是否位于体积内。如果坐标不在体积内,则丢弃它并生成新的坐标。在
如果这是不够的,由于它的非恒定性能或其他任何原因,你将需要约束你的问题(比如说,只有四面体)和做一堆微积分来计算必要的随机分布和模型之间的依赖轴。在
例如,可以从x轴开始,将体积和平面之间的相交形状的面积积分,其中x=t。这将给您一个函数p(x),当标准化时,它是沿x轴的概率密度函数。(如果需要非均匀分布,也需要将其放入集成函数中。)
然后你需要做另一组积分来确定p(y | x0),在给定的x坐标下,y轴上的概率分布函数。最后,需要确定p(z | x0,y0),z轴上的概率分布函数。在
一旦你有了这些,你就需要使用任何随机数算法来选择这些分布中的随机数:首先从p(x)中选择x0,然后用这个算法从p(y | x0)中选择y0,然后用这些算法从p(z | x0,y0)中选择z0,你就会得到你的结果(x0,y0,z0)。在
有多种算法可以确定一个点是否在卷之外,但一个简单的算法可以是:
请注意,您只需在体积移动时重新计算特征平面,而不是为每个随机点重新计算特征平面。在
可能有更好的算法在那里,他们的讨论超出了这个问题和答案的范围。这个算法是我不需要研究就可以想出的,而且可能和气泡排序一样好。在
相关问题 更多 >
编程相关推荐