gpt4 book ai didi

javascript - 如何在球体中获得随机 Vector3 ?

转载 作者:行者123 更新时间:2023-12-05 01:49:20 27 4
gpt4 key购买 nike

我正在尝试在球体内创建一个随机点,但我不确定该怎么做。我想到了这个,但我认为它在立方体中返回一个点我想我必须用 Math.PI 做点什么,但不确定如何做。

  #createParticlePosition() {
const shape = this.options.shape;
// shape.radius = 2;
if (shape.type === 'sphere') {
return new Three.Vector3(
(Math.random() * shape.radius - (shape.radius / 2)) * 1.0,
(Math.random() * shape.radius - (shape.radius / 2)) * 1.0,
(Math.random() * shape.radius - (shape.radius / 2)) * 1.0
);
}
}

最佳答案

您确实只是在创建框。您只是线性计算 x,y,z 值,而不是球形计算。三.js has a Vector3.randomDirection method可以为您进行这些计算:

const maxRadius = 2;

// Randomize to range [0, 2]
const randomRadius = Math.random() * maxRadius;

// Create vec3
const randomVec = new THREE.Vector3();

// Make vector point in a random direction with a radius of 1
randomVec.randomDirection();

// Scale vector to match random radius
randomVec.multiplyScalar(randomRadius);

此方法利用 this approach internally以避免两极密度累积。

enter image description here

关于javascript - 如何在球体中获得随机 Vector3 ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74228946/

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