Я хотел бы знать, можно ли вычислить углы треугольников трехмерной сетки (представленные графиком) с использованием функции CGAL?Углы треугольников трехмерной сетки с использованием #CGAL
Благодаря
Я хотел бы знать, можно ли вычислить углы треугольников трехмерной сетки (представленные графиком) с использованием функции CGAL?Углы треугольников трехмерной сетки с использованием #CGAL
Благодаря
Если у вас есть невырожденный треугольник с тремя точками a
, b
и c
, углом треугольника, косинус угла при a
скалярное произведение двух векторов разделены по их длине :
CGAL::Vector_3<K> v1 = b - a;
CGAL::Vector_3<K> v2 = c - a;
double cosine = v1 * v2/CGAL::sqrt(v1*v1)/CGAL::sqrt(v2 * v2);
где K
является тип ядра, которую вы используете для точек. Угол сам по себе в радиусе может быть вычислена с помощью:
double angle = std::acos(cosine);
Конечно, для вырожденных треугольников, длины может быть равен нулю, и выражение выше будет вычислять 0./0.
(то есть не-число). Вы должны иметь дело с этим случаем отдельно.
Вы хотите вычислить углы в треугольнике или вычислить статистику по углам треугольников? – lrineau
Я хочу вычислить углы в треугольниках – ananass
В 2D или 3D? Ответ будет другим. Пожалуйста, измените свой вопрос, используя кнопку «Изменить» под ним. – lrineau