Показать сообщение отдельно
Старый 26.10.2015, 12:56   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Олег, ну чего наворотил?
Цитата:
Сообщение от MagentaTiger Посмотреть сообщение
Расстояние между центрами R = ( x1 - x2 ) * ( x1 - x2 ) + ( y1 - y2 ) * ( y1 - y2 )
Точнее, так:
Если R - расстояние между центрами, то
R² = (x1-x2)² + (y1-y2)²
Цитата:
Сообщение от MagentaTiger Посмотреть сообщение
Пересекаются если
R <= ( r1 + r2 ) * ( r1 + r2 ) И
((r1 > r2 И R >= r1 - r2) ИЛИ (r1 <= r2 И r2 - r1 ))
Да зачем так сложно? Пересекаются, если R < (r1 + r2). Всё, больше ничего не надо.
Цитата:
Сообщение от MagentaTiger Посмотреть сообщение
Если пересекаются то счетчик пересекающихся окружностей увеличиваем на 1
Точнее, так. Увеличиваем счетчик окружностей, НЕ пересекающих другие, если при прохождении внутреннего цикла не случилось ни одного пересечения. Если случилось - цикл следует прервать.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070