Преобразование треугольников в четырехугольники
Может ли кто то помочь с преобразованием треугольников в четырехугольники? Сам плохо в этом разбираюсь, но нужно сделать свою функцию для этого (язык программирования не имеет значения).
Есть список полигонов вида:[[0, 1, 2], [2, 1, 3]. ] и вершин [0.1, 0.2, 0.1. ]
Могу заплатить за помощь или готовое решение.
первое же видео на ютубе
Мне нужен алгоритм, в максе я знаю как это сделать.
первое же видео на ютубе
Я так понял, ТС спрашивает про алгоритм, а не про какую кнопку нажать.
Может ли кто то помочь с преобразованием треугольников в четырехугольники? Сам плохо в этом разбираюсь, но нужно сделать свою функцию для этого (язык программирования не имеет значения).
Есть список полигонов вида:[[0, 1, 2], [2, 1, 3]. ] и вершин [0.1, 0.2, 0.1. ]
Могу заплатить за помощь или готовое решение.
Не на том форуме вопрос.
Я так понял, вам нужен алгоритм. Если так, то советую поискать на хабре, наверняка где-то есть уже написанное решение.
Ну или давайте разберемся 🙂
У вас есть массив треугольников, каждый треугольник имеет вид [1, 2, 3] — массив из трех точек.
Нужно получить на выходе массив четырехугольников. Четырехугольник — это два треугольника. Соответствнно, на выходе у вас будет массив вида
треугольник1[точка1, точка2, точка3],
треугольник2[точка1, точка2, точка3]
треугольник1[точка1, точка2, точка3],
треугольник2[точка1, точка2, точка3]
четырехугольник2[треугольник1[точка1, точка2, точка3],треугольник2[точка1, точка2, точка3]],
Таким образом, Вам надо найти пары треугольников, имеющие общую грань.
Для того, чтобы этого достичь, самый простой, прямой и медленный путь выглядит так:
1. Создаем пустой массив, заготовку под конечный результат.
2. Начинаем перебор всех треугольников исходного массива.
3. Для каждого треугольника перебираем все остальные треугольники исходного массива, ищем такой, с которым у текущего треугольника есть общая грань (две общих точки).
4.1. Если не нашли пару — это изолированный треугольник. Убираем его в отдельный массив изолированных треугольников.
4. Если нашли пару, тогда оба треугольника удаляем из массива, и создаем элемент массива результатов — квад, состоящий из двух найденных треугольников.
5. Ищем следующий треугольник для анализа. Для этого нужно сделать два шага:
5.1 перебираем уже найденные квады, пробуем найти к каждому их треугольнику прилегающий треугольник в исходном массиве (так же, как в пункте 3). Если поиск удался — повторяем алгоритм с шага 3 для найденного треугольника из исходного массива.
5.2 если смежный треугольник в исходном массиве не найден — берем первый оставшийся треугольник исходного массива, и повторяем для него процедуру с шага 3.
6. Повторяем процедуру до тех пор, пока в исходном массиве остаются любые треугольники.
Таким образом, на входе у нас есть исходный массив треугольников, на выходе мы получаем массив квадов, каждый из которых состоит из двух треугольников, и массив треугольников, не имеющих смежных (см. видео выше — там видно, что после квадификации осталось несколько треугольников, которые «не пригодились»).
Ладно, вот вам пдф, там английский язык и уйма математики, но в разделе 3.1 — алгоритмы квадификации 🙂
3dsMax. Конвертировать треугольники в четырехугольники
При использовании бесплатных моделей в сети Интернет или переходе из одного трехмерного пакета в другой в 3ds Max полигональный объект может быть представлен в виде треугольников (triangles) (рис. 1).

Рис. 1. Полигональная модель в виде треугольников
Такое представление модели не всегда удобно при риггинге и моделировании. Для преобразования полигональной модели в форму в виде аппроксимации с помощью четырехугольников существуют специальные команды.
Прежде всего, нужно преобразовать объект из Editable Mesh в Editable Poly. Для этого выделите модель, щелкните правой кнопкой мыши и выберите в контекстном меню Convert To: Convert to Editable Poly (рис. 2).

Рис. 2. Конвертирование в Editable Poly
Теперь в окне программы нужно отобразить панель Ribbon (если она еще не отображена) с дополнительными инструментами. Для этого переместите указатель мышки в свободное место самой верхней строки меню программы, щелкните правой кнопкой и в контекстном меню установите флажок напротив Ribbon. (рис. 3.).

Рис. 3. Установка панели Ribbon
Убедитесь, что на панели Ribbon активна вкладка Modeling и щелкните по названию вкладки Geometry (All). Из выпадающего списка (рис. 3) выберите команду Quadrify All, чтобы сконвертировать все полигоны на модели (рис. 4).

Рис. 4. Конвертирование полигонов
В результате вместо треугольников появятся четырехсторонние полигоны (рис. 5).

Рис. 5. Полигональная модель в виде четырехугольников
Чтобы снова преобразовать четрыхугольники в треугольники, достаточно сконвертировать модель в Editable Mesh, выделить все ребра (Edge) и в настройках модификатора Editable Mesh в свитке Surface Properties выбрать команду Visible.