Я недавно начал играть с холстом, увидев, как легко это может быть. Мой первый проект состоял в том, чтобы сохранить круг в своих границах, когда он движется. Я сделал еще несколько вещей, связанных с движением кругов, и теперь ...Определение точки и угла пересечения двух окружностей.
В настоящее время я работаю над отскоком двух кругов друг от друга, когда они попадают. Вы можете увидеть пример этого: http://jsfiddle.net/shawn31313/QQMgm/7/
Однако я хотел бы использовать немного больше физики реального мира. В настоящий момент, когда круги ударяют друг друга, они просто меняют свой путь.
Как показано здесь:
// Dont be confused, this is just the Distance Formula
// We compare the distance of the two circles centers to the sum of the radii of the two
// circles. This is because we want to check when they hit each other on the surface
// and not the center.
var distance = Math.sqrt(Math.pow(c1.x - c2.x, 2) + Math.pow(c1.y - c2.y, 2));
var r1 = c1.rad;
var r2 = c2.rad;
if (distance < r1 + r2) {
// Change the slope of both circle
// I would like to figure out a more effecience way of bouncing the circles back
// However, I have no idea how to determine the angle the ball was struck,
// and with that information bounce it off at that angle
c1.xi = -c1.xi; // path is reversed
c1.yi = -c1.yi;
c2.xi = -c1.xi;
c2.yi = -c1.yi;
}
Тем не менее, я хотел круги идти в обратном направлении определяется точкой и угла пересечения.
Я только в 9 классе и не знаю, как выглядит формула для чего-то подобного. Но я знаю, что это возможно, потому что такая физика присутствует во многих играх. Примером может служить игра с 8 мячами. Когда шарики ударяют друг друга, они перемещаются по столу в соответствии с тем, как шары ударяют друг друга.
Я был бы признателен за любые советы о том, как это сделать или если я должен подождать, пока у меня не будет более сильного понимания физики и математики в целом.
Если круги имеют одинаковую массу и скорость, то скорости просто меняются. Но если скорости разные, ситуация усложняется. – Teepeemm
@Teepeemm Спасибо за комментарий. Но должен ли угол пересечения материи? – Shawn31313
Я так не думаю. После Pixou мы можем повернуть все (по нашему мнению, по крайней мере), чтобы центр масс двигался вправо. Поскольку совпадение массы и скорости, это означает, что вертикальная составляющая скоростей точно противоположна. Затем, когда круги попадают, это похоже на то, что они отскакивают от горизонтальной стены, так что горизонтальная скорость не изменяется, а вертикальная скорость отрицается. Но это точно скорость от другого круга. Отключите все, и вы вернетесь в рамку, где вы начали. – Teepeemm