Я довольно плохо знаком с физикой кодирования (и довольно плохо разбираюсь в кодировании, но мне это нравится), поэтому я решил впервые попробовать что-то простое: https://www.maths.tcd.ie/~lebed/Galperin.%20Playing%20pool%20with%20pi.pdf
Я обнаружил ссылку изэто видео:
https://www.youtube.com/watch?v=jsYwFizhncE
Я пытался воссоздать этот вид движения (если они не помогают мне, точные цифры для меня не имеют значения, только движение),в P5.js, и я подошел очень близко, но случайно при столкновении все ломается, и скорости сходят с ума.
вот ужасно короткий «псевдокод» о том, как я пытаюсь это сделать: (это главныйчасть, в которой я борюсь, так что мне не нужен мой настоящий код)
>>>if box2 position < box1 position: //if they overlap(/collide)
>>> change velocity of box 1 depending on the kinetic energy and momentum of box2
>>> change velocity of box 2 depending on the kinetic energy and momentum of box1
>>>If box1 position < 0: //If it hits wall
>>> box1 velocity = box1 velocity * -1
Я не знаю, как сохранить полную кинетическую энергию в системе, эквивалентную формуле сохранения кинетической энергии (/ константаформулы)
keCons_Const=(0.5*m1*(velocity1)^2)+(0.5*m2*(velocity2)^2);
А также аналогично сохранению импульса:
momentCons_Const=(m1*velocity1)+(m2*velocity2);
Основная причина, по которой я думаю, что я застреваю с этим, заключается в том, что я не знаю, какустановить числа скорости вctual "m / s", это отбрасывает меня, как в моем коде, который я использую:
x2 = x2 + velocity2; //box2 v & also holds the initial velocity
x1 = x1 + velocity1; //box1 v
, поэтому я не могу действительно оглянуться на видео, связанное для справки и посмотреть, получаю ли я соответствующийзначения
Я, однако, знаю, что две скорости нужно менять в зависимости от дроби, вероятно, вот так:
что-то здесь / keCons_Const
Если возможно, пожалуйста, не делайте все для меня, есть вещи, которые я смогу сделать, когда выяснятся такие вещи, как скорость. Спасибо!
Изображение моего экрана (только что понял, что можно добавлять изображения):