为什么我不能在CGAL中添加点数

时间:2017-10-11 16:30:16

标签: c++ geometry operator-overloading point cgal

我正在尝试使用+运算符在CGAL中添加两个点。

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Point_2.h>

typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_2 Point;

using namespace std;

cout << Point(8.9, 9) + Point(1,1) << endl;
cout << Point(8.9, 9) + Point(2,2) * .5 << endl;

我认为可以考虑documentation

但是我收到以下错误:

/path_to_file/main.cpp:25: error: no match for ‘operator+’ (operand types are ‘Point {aka CGAL::Point_2<CGAL::Simple_cartesian<double> >}’ and ‘Point {aka CGAL::Point_2<CGAL::Simple_cartesian<double> >}’)
 cout << Point(8.9, 9) + Point(1,1) << endl;
         ~~~~~~~~~~~~~~^~~~~~~~~~~~

1 个答案:

答案 0 :(得分:1)

我误读了文档。您只能向点添加矢量。 (当然,这完全有道理)

来自文档:

  

Point_2&LT;内核&GT; operator +(const Point_2&lt; Kernel&gt;&amp; p,const Vector_2&lt; Kernel&gt;&amp; v)返回通过向量v转换p得到的点