#graphics #openmesh
#графика #openmesh
Вопрос:
OpenMesh имеет calc_dihedral_angle()
функцию для вычисления двугранного угла между двумя гранями. Существует ли знаковый / направленный эквивалент этой функции? Полукруги граней направлены, поэтому нормали граней четко определены. Таким образом, имеет смысл говорить о выпуклости.
Рассмотрим следующий простой случай, состоящий только из двух соединенных граней. Начиная с нулевого двугранного угла (соседних граней в плоскости), можно повернуть одну из граней вокруг общего ребра в любом направлении. В одном случае поверхность будет выпуклой, в другом случае она будет вогнутой. calc_dihedral_angle()
не делает различий между ними. Я ищу функцию, которая учитывает эту направленность и дает либо положительный, либо отрицательный двугранный, в зависимости от выпуклости.
Комментарии:
1. Используйте скалярное произведение нормалей, чтобы решить, равен ли угол>90 или <90, но с точки зрения соглашения о знаках это не имеет смысла, если у вас не указана ось вращения и направление.
2. Я понял, что
calc_dihedral_angle()
это уже делает. Я согласен, что выбор знака не указан, но не имеет значения, если он согласован и позволяет различать два направления.
Ответ №1:
На самом деле это именно то, что calc_dihedral_angle()
делает.