У меня есть простой Java-апплет с двумя управляемыми пользователем шарами, нарисованный с использованием java.awt
. Мне нужен способ обнаружить столкновение между ними. У меня есть алгоритм для обнаружения столкновения со стенками:Обнаружение столкновений для кругов
if (xPosition > (300 - radius)){
xSpeed = -xSpeed;
}
else if (xPosition < radius){
xSpeed = -xSpeed;
}
else if (yPosition > (300 - radius)) {
ySpeed = -ySpeed;
}
else if (yPosition < radius){
ySpeed = -ySpeed;
}
xPosition += xSpeed;
yPosition += ySpeed;
и второй мяч:
if (xPosition2 > (300 - radius)){
xSpeed2 = -xSpeed2;
}
else if (xPosition2 < radius){
xSpeed2 = -xSpeed2;
}
else if (yPosition2 > (300 - radius)) {
ySpeed2 = -ySpeed2;
}
else if (yPosition2 < radius){
ySpeed2 = -ySpeed2;
}
xPosition2 += xSpeed2;
yPosition2 += ySpeed2;
- Апплет 300 пикселей на 300 пикселей.
radius
хранит радиус окружностей.xPosition
иxPosition2
хранить координаты x для двух шаров.yPosition
иyPosition
магазин у-координата для двух шаров,xSpeed
иxSpeed2
магазин рентгеновских скоростей для двух шаров.ySpeed
иySpeed2
хранить скорости y для двух шаров.
Добро пожаловать на SO, Боб. Это скорее более математический вопрос, чем вопрос программирования, поскольку нет способа сделать то, что вы хотите встроить в язык Java. Чтобы вы начали, подумайте об этом так: обнаружение столкновений означает обнаружение, когда шары будут перекрываться или касаться, верно? И вы знаете их позиции и размеры .... – Pops
Ya, но я ничего не могу придумать. Я попытался сделать это с помощью математики, и я закончил с шариками, проходящими друг через друга и около 30 строк бесполезного кода –