1
我剛從CGAL開始,因此我的問題,因爲我覺得你應該能夠比循環遍歷頂點更容易地翻譯CGAL :: Polygon_2。Translate CGAL多邊形沒有通過頂點循環
當前的方式我這樣做是這樣的:
//Headers and typdef
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Boolean_set_operations_2.h>
#include <CGAL/aff_transformation_tags.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
typedef CGAL::Aff_transformation_2<Kernel> Transformation;
//Declare Polygon
Polygon_2 P;
P.push_back(Point_2(0, 0));
P.push_back(Point_2(5, 0));
P.push_back(Point_2(3.5, 1.5));
//Loop through vertices and translate
Transformation translate(CGAL::TRANSLATION, CGAL_Vector(0.2, 0));
typename CGAL::Polygon_2<Kernel>::Vertex_iterator vit;
//NOTE: This is the for loop that looks inefficient to me.
for (vit = P.vertices_begin(); vit != P.vertices_end(); ++vit) {
*vit = translate(*vit);
}
有人可以給我一個指示這是否是要做到這一點,或給我指點如何做的更好的正確方法。