我试图弄清楚如何使用粒子系统为我正在制作的重力模拟器模拟土星环。使用下面的代码,我已经成功地创建了一个在土星及其卫星的引力作用下围绕土星旋转的圆环,如果不是完美的话。然而,我的环的轴向倾斜度为 0,而实际上土星环的轴向倾斜度为 27 度。问题是我无法为构成粒子系统的粒子获得正确的 z 位置和速度矢量。有人能帮我弄清楚如何做到这一点吗?我用来为环中的每个粒子生成初始状态向量的代码可以在下面找到。
for (let i = 0; i < this.numberOfParticles; i++) {
const rad = Math.PI * 2 * Math.random();
const dist = (25 + 20 * Math.random()) / 32000;
this.particles.push({
x: Math.cos(rad) * dist,
y: Math.sin(rad) * dist,
z: 0,
vx: (Math.cos(rad + Math.PI / 2 + (Math.PI / 180 * 6 - Math.PI / 180 * 12) * 0) * Math.sqrt(500 / dist)) / 120,
vy: (Math.sin(rad + Math.PI / 2 + (Math.PI / 180 * 6 - Math.PI / 180 * 12) * 0) * Math.sqrt(500 / dist)) / 120,
vz: 0
});
}