gpt4 book ai didi

将点均匀放置在球体内的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:37 25 4
gpt4 key购买 nike

如果我有一个中心为 (x,y,z) 且半径为 r 的球体,是否存在一种算法可以将 X 个点 (x,y,z) 放置在球体内,例如到彼此点最大化?

例如一个点将简单地放置在中间,两个点将放置在相对的边界上,三个点将在边界上以“三角形”形式放置等等。

正如已经指出的那样,无法为每个点找到彼此相等的距离。因此,要求是最大化点之间的最小距离。

更新:

以下代码在半径为 1.0 的球体内生成点,但不会最大化距离。

function getPoint() {
var d, x, y, z;
do {
x = Math.random() * 2.0 - 1.0;
y = Math.random() * 2.0 - 1.0;
z = Math.random() * 2.0 - 1.0;
d = x*x + y*y + z*z;
} while(d > 1.0);
return {x: x, y: y, z: z};
}

我想之后我需要某种迭代。我尝试以 n 体问题为灵感来应用力模型,虽然看起来很有趣,但效果并不理想。

最佳答案

对于随机但均匀的放置,在球体的边界立方体中绘制均匀的随机点并接受球体内部的点。当你有足够的分数时停止。

如果要有规律的排列,这道题就难多了。

关于将点均匀放置在球体内的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57360792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com