使用 cgal 库计算向量的夹角
#include <vector>
#include <iostream>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Ray_2.h>
#include <CGAL/Polygon_2.h>
#include <CGAL/intersections.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
typedef Kernel::Vector_2 Vector_2;
typedef Kernel::Segment_2 Segment_2;
typedef Kernel::Circle_2 Circle_2;
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
typedef Kernel::Line_2 Line_2;
int main()
{
Vector_2 v1(-1, -1);
Vector_2 v2(0, -1);
// Compute the scalar product and squared length of the vectors
double scalar_product = CGAL::to_double(v1 * v2);
double squared_length_v1 = CGAL::to_double(v1.squared_length());
double squared_length_v2 = CGAL::to_double(v2.squared_length());
// Compute the angle between the vectors
double cos_angle = scalar_product / std::sqrt(squared_length_v1 * squared_length_v2);
double angle = std::acos(cos_angle)* (180 /CGAL_PI);
std::cout << "angle: " << angle << std::endl;
return 0;
}
转载请注明原文链接:https://www.cnblogs.com/itfanr/p/17773947.html
公众号:小弧光黑板报