Я работаю над моделированием системы Сатурна, которая позволит пользователю, например, увеличить массу своего самого большого Лунного Титана до массы Земли и посмотреть, как в результате этого возмущаются другие луны и кольца.Мое представление о кольцах представляет собой грубую систему частиц, где каждая частица начинается с набора векторов положения x, y, z и скорости.Если я установлю z и векторы скорости на 0, я получу довольно красивое кольцо, которое вращается вокруг Сатурна, но проблема в том, что Сатурн имеет осевой наклон (наклон его оси вращения к своей плоскости орбиты) 27 градусовпоэтому вы должны принять во внимание векторы положения и скорости z, чтобы симуляция была хотя бы несколько реалистичной, но после многих стонов и стонов я не смог правильно определить наклон колец.
Это метод, который создает начальные условия для частиц, составляющих кольцо:
init() {
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
});
}
}
Есть ли кто-нибудь, кто мог бы помочь мне выяснить, как получить векторы положения и скорости zправильно, учитывая код выше?Как уже упоминалось выше, осевой наклон должен составлять 27 градусов.