2014 dxdy logo

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

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




 
 Метод поиска линии пересечения двух поверхностей
Сообщение27.10.2010, 15:01 
Здравствуйте!
Вот стоит проблема нахождения линии пересечения двух поверхностей.
Поверхности заданы последовательным набором треугольников.
Сначала попробовал решить проблему аналитически: находил точку пересечения каждого ребра с противоположной поверхностью. Однако в этом случае происчодит неточний расчёт т.к. цоцедние точки пересечения соединяются прямой а долгни кривой. В тоже время я могу описать поверчность параметрически (Nurns) т.к. у меня есть вершины треуголников. Как я понимаю результатом пересечения двух пар. поверхностей должна являться тоже пар. кривая которую можно перевески в декартовие координаты.



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

спасибо

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

 
 
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение27.10.2010, 17:03 
http://www.gamedev.ru/files/images/?id=60235

 
 
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение07.12.2010, 12:18 
Аватара пользователя
Если поверхности представлены в виде треугольников, то линия пересечения будет многорезком (полилинией). Почему же Вы ищите кривую в качестве линии пересечения?

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

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

 
 
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение30.12.2010, 23:53 
Вряд ли я такую задачу осилю...
-------------
кнр

 
 
 
 Re: Метод поиска линии пересечения двух поверхностей
Сообщение14.02.2011, 12:47 
Для начала нужно построить пространственное дерево (например можно R-tree), чтобы алгоритм не был полиномиальным. Затем найти все отрезки для пересеченных треугольников, тоже сложить их в дерево, и найти связанные отрезки. В итоге алгоритм будет O(N log N).

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group