Четверг, 28 Марта 2024, 23:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Помогите(коллизия двух кругов)
Помогите(коллизия двух кругов)
clidiДата: Суббота, 11 Февраля 2012, 17:40 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Помогите с коллизией двух кругов. Написал проверку
Code

bool collisionCircles(float x1, float y1, float r1, float x2, float y2, float r2)
{
  if((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) < (r1+r2)*(r1+r2))
   return true;
  else
   return false;
}


Это правильно?
Один круг не двигается а другой двигается. Как узнать текущие координаты круга? Предполагаю что нужно использовать glGetDoublev(). Вообщем помогите советом.
RorschachДата: Суббота, 11 Февраля 2012, 18:00 | Сообщение # 2
участник
Сейчас нет на сайте
Quote (clidi)
(r1+r2)*(r1+r2)

В квадрат возводить не нужно, а так все правильно.

Добавлено (11.02.2012, 18:00)
---------------------------------------------
А нет. Расстояние между двумя центрами тоже неверно находишь. Так должно быть:

Code

sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) < (r1+r2)


Never compromise. Not even in the face of Armageddon.
DekaSoftДата: Суббота, 11 Февраля 2012, 22:18 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Quote (Rorschach)
sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) < (r1+r2)


или не брать корень, а сравнивать с квадратом (r1+r2)*(r1+r2). В общем первом посте было все правильно smile


http://dekasoftware.narod.ru
http://www.dekagames.com
RorschachДата: Воскресенье, 12 Февраля 2012, 08:05 | Сообщение # 4
участник
Сейчас нет на сайте
Quote (DekaSoft)
или не брать корень, а сравнивать с квадратом (r1+r2)*(r1+r2). В общем первом посте было все правильно

Лол, что-то я сфейлил biggrin


Never compromise. Not even in the face of Armageddon.
Форум игроделов » Программирование » C/C++ » Помогите(коллизия двух кругов)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг