Почему мой код приводит к огромной неожиданной потере энергии в моем моделировании столкновения, когда уравнение кажетсяJavascript

Форум по Javascript
Ответить
Anonymous
 Почему мой код приводит к огромной неожиданной потере энергии в моем моделировании столкновения, когда уравнение кажется

Сообщение Anonymous »

Я сделал немного кода JS, чтобы имитировать столкновение между двумя объектами в бессмысленном, драглентном и совершенно эластичном мире. Я спроектировал его, чтобы импульс был идеально консервативен, или так я подумал, как я его проверял, и произошла огромная потеря энергии. Кубики имеют равную массу. Скорости для обоих кубов намного меньше после столкновения, а первый куб каким -то образом сохраняет часть собственной скорости со скоростью -0,661 вместо 0, в то время как второй куб вместо того, чтобы иметь скорость ровно -20, имеет скорость -3,63, вместо этого. столкновение Нет проблем с столкновениями стен. < /P>
Вот код: < /p>
var canvas = document.getElementById('PhysicsSim');
var con = canvas.getContext('2d');
var speedC1 = -20 //speed for big cube
var speedC2 = 0 // speed for small cube
var simOn = "false"
let Mass1
let Mass2
var Bounce = 0
var MassSum = Mass1 + Mass2

document.getElementById('StartButton').onclick = function(){
simOn = "true"
}

document.getElementById('StopButton').onclick = function(){
simOn = "false"
}

document.getElementById('SubmitUnit').onclick = function(){
Mass1 = document.getElementById('BigInput').value;
Mass2 = document.getElementById('SmallInput').value;
console.log(Mass1);
console.log(Mass2);
console.log(speedC2);
console.log(speedC1);
MassSum = Mass1 + Mass2
}

X1 = 150
X2 = 120

con.fillRect(0, 140, 300, 10);
con.fillRect(0, 0, 10, 140);

setInterval(() => {
if (simOn == "true") {
if ((X2 += speedC2*0.005)
Я уже пытался перевернуть его, и решение для уравнения дает правильный ответ, по -видимому. Я почти уверен, что проблема в логике, не где -либо еще.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ision-simu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»