Показать сообщение отдельно
Старый 16.02.2010, 13:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 19  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от greegreeman Посмотреть сообщение
всем спасибо. похоже придется достать конспект по матану и сдуть пыль почитать про аппроксимацию. любую (практически любую) сложную фигуру можно свести к простой с определенной степенью точности... а пока что попробую вариант, который предложил silin. буду шагать
Ну так если точность не особо важна, так проще всего посчитать пересекаются ли окружность и прямая - нужно найти перпендикуляр к прямой проходящий через центр окружности и сравнить его с радиусом (если такой перпендикуляр не пересекается с данным отрезком, или радиус меньше длины перпендикуляра - не пересекаются, в противном случае - пересекаются). Аналогично просто посчитать пересекаются ли отрезок и прямоугольник - если крайняя правая точка отрезка левее прямоугольника, или нижняя точка выше, или крайняя левая - правее, или верхняя - ниже, то не пересекаются, в противном случае - пересекаются. Если вы можете описать многоугольник как массив отрезков - так мой первый вариант - будет самым простым решением т.как он как раз проверяет пересечение двух отрезков, просто переберите все отрезки из которых состоит многоугольник и проверьте пересечение.
__________________
Hell is the possibility of sanity