Нахождение эквивалента точки внутри 2D-треугольника на деформированном 3D-треугольнике

#c #geometry

#c #геометрия

Вопрос:

Итак, я создаю эту простую систему, которая создает путь в 2D-треугольнике, но затем я должен найти его эквивалент в 3D. Это было бы не так сложно, если бы указанный треугольник не был из текстуры, что означает, что он может иметь разные углы и т.д. от того, который отмечен в файле .png. Поиск точек трассировки — это одно, но мне также нужны точки внутри указанного треугольника с одинаковыми относительными расстояниями от всех углов. Я понятия не имею, как это сделать. Есть ли какой-нибудь простой способ сделать это?

РЕДАКТИРОВАТЬ: Чтобы немного уточнить: у меня есть 3D-сетка, на которой есть текстура, примененная во внешней программе (например, blender). Геометрия треугольника сетки может меняться при применении (весь смысл процесса отображения текстуры, чтобы иметь возможность настраивать форму и размер изображения), но расстояния, описывающие точки на изображении, устанавливаются для определенных вершин модели. Я загружаю его в свою программу, считываю координаты треугольников, а также координаты текстуры в диапазоне (0, 1) для каждой вершины. Теперь я загружаю файл текстуры, извлекаю необходимую информацию (пути инструментов на основе цветов в геометрии), но пути, которые я генерирую, по-прежнему являются 2D и в масштабе текстурного изображения. Мне нужно масштабировать его до реального размера (точки треугольника) и сохранить найденные пути на поверхности такой модели, поэтому мне нужно найти точки, которые находятся на одинаковом расстоянии от каждого угла и находятся на плоскости, которая является треугольником.

EDIT2: Путь, который у меня есть в 2D, происходит от постепенного уменьшения контура формы, обнаруженной на текстуре. Я превращаю изображение в двоичное, получаю контур и уменьшаю масштаб несколько раз, чтобы получить эти концентрические контуры. Это описано в пространстве координат изображения, потому что это непосредственно из изображения. Теперь этот концентрический путь необходимо преобразовать в координаты сетки.

Комментарии:

1. Можете ли вы немного подробнее рассказать о том, что вы пытаетесь здесь сделать? Как определяются эти текстуры? Является ли цель отображением плоского контура на текстурированный треугольник? Если да, то в каком формате у вас есть данные и каков формат ожидаемого результата? (Я полагаю, что, если вы можете включить изображения и пример кода для того, что у вас есть сейчас, это было бы немного проще для понимания.)

2. Можете ли вы выразить свой путь в барицентрических координатах? Тогда сопоставление с позициями треугольника в 3D-пространстве было бы очень простым. Кстати, одинаковое относительное расстояние от всех углов, вероятно, не то, что вы хотите. Точка, которая ранее была внутри треугольника, может появиться снаружи, если треугольник сильно деформирован.

3. @templatetypedef Добавлено более подробное описание

4. @NicoSchertler Barycentric — хороший вариант, но ваша точка зрения о сильной деформации идеальна. Но у меня нет другой идеи «экспортировать» пути в треугольник сетки

5. Возможно, вы могли бы добавить к своему вопросу, откуда берется ваш путь и как он определяется. У меня похожие проблемы с @templatetypedef, чтобы понять ваш вопрос. Изображения очень помогли бы.