2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Метод поиска линии пересечения двух поверхностей
Сообщение27.10.2010, 15:01 


17/07/09
10
Здравствуйте!
Вот стоит проблема нахождения линии пересечения двух поверхностей.
Поверхности заданы последовательным набором треугольников.
Сначала попробовал решить проблему аналитически: находил точку пересечения каждого ребра с противоположной поверхностью. Однако в этом случае происчодит неточний расчёт т.к. цоцедние точки пересечения соединяются прямой а долгни кривой. В тоже время я могу описать поверчность параметрически (Nurns) т.к. у меня есть вершины треуголников. Как я понимаю результатом пересечения двух пар. поверхностей должна являться тоже пар. кривая которую можно перевески в декартовие координаты.



Вопрос 1: Знает ли кто такой метод?

спасибо

http://www.gamedev.ru/files/images/?id=60229

 Профиль  
                  
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение27.10.2010, 17:03 


17/07/09
10
http://www.gamedev.ru/files/images/?id=60235

 Профиль  
                  
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение07.12.2010, 12:18 
Аватара пользователя


09/05/06
115
Если поверхности представлены в виде треугольников, то линия пересечения будет многорезком (полилинией). Почему же Вы ищите кривую в качестве линии пересечения?

Для поверхностей, у которых известны их уравнения F(x)=0, можно построить численно линию пересечения на основе знания одной стартовой начальной точки на линии пересечения и векторов нормалей к поверхностям (они берутся из уравнений). Векторное перемножение этих нормалей даст направление движения вдоль линии пересечения поверхностей, а начальная точка позволит вычислить её численно путём решения диффура, построенного на основе полученного вектора производных (касательного вектора линии пересечения).

В случае же с треугольниками, думается мне, нужно перебирать треугольники и искать линию пересечения плоскостей в каждом случае, т.е. при выходе из очередного треугольника одной из поверхностей.

 Профиль  
                  
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение30.12.2010, 23:53 
Спамер


30/12/10

2
Вряд ли я такую задачу осилю...
-------------
кнр

 Профиль  
                  
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение14.02.2011, 12:47 


18/11/10
381
Мюнхен
Для начала нужно построить пространственное дерево (например можно R-tree), чтобы алгоритм не был полиномиальным. Затем найти все отрезки для пересеченных треугольников, тоже сложить их в дерево, и найти связанные отрезки. В итоге алгоритм будет O(N log N).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group