#include <CGAL/min_quadrilateral_2.h>
| ||||||
|
|
computes a minimum area enclosing rectangle of the point set described
by [points_begin, points_end), writes its vertices
(counterclockwise) to o, and returns the past-the-end iterator
of this sequence.
If the input range is empty, o remains unchanged.
If the input range consists of one element only, this point is written
to o four times.
Precondition: The points denoted by the range [points_begin,
points_end) form the boundary of a simple convex polygon
in counterclockwise orientation.
The geometric types and operations to be used for the computation are specified by the traits class parameter t. The parameter can be omitted, if ForwardIterator refers to a two-dimensional point type from one the CGAL Kernels. In this case, a default traits class (Min_quadrilateral_default_traits_2<Kernel>) is used.
Requirement:
#include <CGAL/Cartesian.h> #include <CGAL/Polygon_2.h> #include <CGAL/point_generators_2.h> #include <CGAL/random_convex_set_2.h> #include <CGAL/min_quadrilateral_2.h> #include <iostream> struct Kernel : public CGAL::Cartesian<double> {}; typedef Kernel::Point_2 Point_2; typedef Kernel::Line_2 Line_2; typedef CGAL::Polygon_2<Kernel> Polygon_2; typedef CGAL::Random_points_in_square_2<Point_2> Generator; int main() { // build a random convex 20-gon p Polygon_2 p; CGAL::random_convex_set_2(20, std::back_inserter(p), Generator(1.0)); std::cout << p << std::endl; // compute the minimal enclosing rectangle p_m of p Polygon_2 p_m; CGAL::min_rectangle_2( p.vertices_begin(), p.vertices_end(), std::back_inserter(p_m)); std::cout << p_m << std::endl; return 0; }