Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.02.2007, 20:11
dex dex вне форума
Новичок

Отправить личное сообщение для dex Посмотреть профиль Найти все сообщения от dex
 
Регистрация: 26.02.2007
Сообщений: 1

проверка пересечения
Народ, помогите решить тупую тригонометрическую задачку....
Есть отрезок(A(x,y,z)B(x1,y1,z1)) и есть сфера с центром M(x0,y0,z0) и радиусом R.... Как проверить пересекает ли этот отрезок сферу или нет?

Можно эту задачу переделать так, что у нас есть цилиндр с началом в точке A(x,y,z) и концом в точке B(x1,y1,z1) и радиусом R, и есть точка M(x0,y0,z0), как проверить попадание точки в цилиндр....??

Если кто сможет привести код на с++, то буду очень благодарен!!!!
  #2  
Старый 27.02.2007, 07:52
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

Представляем отрезок в параметрическом виде
P = P0 + t*(P1-P0), подставляем в уравнение сферы, находим, есть ли пересечения. Если есть решения при параметре t в пределах 0..1 - пересекает.
Если одно пересечение при t<0, второе при t>1 - отрезок внутри сферы.
Если вероятность пересечения мала, для ускорения, наверно, можно сначала проверять расстояние от центра сферы до прямой, на которой лежит отрезок, чтобы отмести заведомо далекие
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка принадлежности точки многоугольнику hotice Вычислительная геометрия 1 17.01.2007 13:26