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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.02.2010, 14:19
Новичок

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

Реализовать сечение 3 эллипсоидов
Задача.
Построить тело образованное сечением трех эллипсоидов. (Отсечение делать как "AND", то есть результирующее тело должно принадлежать всем трем эллипсоидам)

Входные данные:
центры эллипсоидов Xc, Yc, Zc
полуоси a, b, c

Толком не найдя информации по этой тебе решил решать задачу в лоб. Попробовал реализовать алгоритм для 2 эллипсоидов. Получив 2 набора треугольников лежащих на поверхности эллипсоидов, простым перебором проверял их вхождение внутрь 1 и 2 эллипсоида и добавлял в результирующий набор. Затем проверил остальные 2 варианта когда попадает только 1 точка или когда 2 точки. Для них находил недостающие точки и тоже добавлял в результирующий набор.
Все работает, но понял что с 3 фигурами будет очень сложно и громоздко. Помогите решить задачу или покажите где почитать по этой проблеме. Спасибо.
  #2  
Старый 27.02.2010, 14:32
MBo MBo вне форума
Местный

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

А как должно описываться результирующее тело, и что подразумевается под "построить"?
  #3  
Старый 27.02.2010, 14:58
Новичок

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

Набором треугольников чтоб было легко отрисовать.
"Построить" - получить, создать...
  #4  
Старый 27.02.2010, 16:31
MBo MBo вне форума
Местный

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

ага, значит, задача сводится к пересечению многогранников.
Думаю, в CGAL http://www.cgal.org/ такие алгоритмы есть.
И в http://www.geometrictools.com/ надо заглянуть
Для двумерного случая побольше библиотек имеется, а для трехмерного я не знаю, есть ли еще.
Возможно, в OpenGL встроены подобные вещи.

Последний раз редактировалось MBo, 27.02.2010 в 16:34.
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите реализовать в рефале vilza Реализация, исходники, языки 7 18.11.2009 20:21
Помогите реализовать следующую задачку на C# гость Реализация, исходники, языки 1 06.04.2009 18:51
Помогите реализовать задачу на С++ Andrei Сортировка и поиск 3 20.11.2008 21:56
как реализовать очередь на массиве курсоров? гость Реализация, исходники, языки 0 03.05.2008 18:44
Помогите реализовать свертку суммированием tumanovalex Реализация, исходники, языки 3 29.10.2007 14:48