Как из треугольника сделать четырехугольник
Перейти к содержимому

Как из треугольника сделать четырехугольник

Преобразование треугольников в четырехугольники

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

Есть список полигонов вида:[[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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *