小弧光的博客

公众号:小弧光黑板报

导航

使用 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;
}

 

posted on 2023-10-19 09:26  小弧光  阅读(144)  评论(1编辑  收藏  举报