Сопоставление копланарного набора 3D-точек с их плоскими 2D-координатами

У меня есть набор 3D-точек сетки и нормалей в каждой точке. Точки лежат в одной плоскости, полученные при разрезании 3d модели по произвольной плоскости.

Проблема в том, что мне нужно сопоставить эти 3D-точки с их плоскими 2D-координатами (u, v), которые можно использовать для формирования триангуляции Делоне сетки. Поэтому мне нужна матрица преобразования, которая преобразует эти трехмерные копланарные точки в их плоские двумерные координаты.


person Nidhi    schedule 03.02.2015    source источник
comment
Я не знаю, зачем вам нужна матрица, так как в вашем случае это простая проекция. Если вы используете C++, в библиотеке CGAL есть пример выполнения двухмерной триангуляции трехмерных копланарных точек здесь.   -  person sloriot    schedule 03.02.2015
comment
На самом деле я использую библиотеку Triangle для триангуляции, для которой нужны 2D-координаты. Вот почему мне нужно преобразовать точки в локальные 2D-точки.   -  person Nidhi    schedule 03.02.2015
comment
Тогда просто используйте u=y и v=z   -  person sloriot    schedule 03.02.2015
comment
Если у меня есть набор 3D-точек, полученных после разрезания 3D-модели по некоторой произвольной плоскости, то каким будет преобразование? Поскольку на этот раз у нас разные координаты для всех точек, мы просто не можем игнорировать ни одну из координат (x, y, z).   -  person Nidhi    schedule 03.02.2015
comment
Обновите свой вопрос тогда. Вы пишете плоскость, перпендикулярную оси x   -  person sloriot    schedule 03.02.2015
comment
возможный дубликат Проецирование 3D-точек на 2D-плоскость   -  person John Alexiou    schedule 03.02.2015


Ответы (1)


Простым решением было бы определить плоскость, перпендикулярную во всех точках к вашим нормалям. В этом случае вы просто позволяете компоненту Z каждого вектора в точке на вашей поверхности равняться 0, что дает вам двумерное представление вашей поверхности на определенной плоскости. Затем ваша матрица преобразования (или правильно rotation) определяется относительно плоскости.

Подробности подхода приведены на странице плоскость (геометрия) и основные принципы того, как это сделать, показаны на странице Определение плоскости в R3 с точкой и вектором нормали.

person David C. Rankin    schedule 03.02.2015