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, Супермодераторы



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

Сейчас этот форум просматривают: Bing [bot]


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

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