【发布时间】:2012-12-14 21:02:54
【问题描述】:
我正在尝试使用Exact_circular_kernel_2 构建圆圈排列。当我在排列中插入一个圆圈时,我得到一个分段错误。
这是我的代码:
CGAL::Circle_2< CGAL::Exact_circular_kernel_2 > circle1( CGAL::Point_2< CGAL::Exact_circular_kernel_2 >(1,1), 2 );
CGAL::Exact_circular_kernel_2::Circle_2 circle2 = circle1;
CGAL::Circular_arc_2< CGAL::Exact_circular_kernel_2 > arc( circle2 );
CGAL::Arr_circular_line_arc_traits_2< CGAL::Exact_circular_kernel_2 >::Curve_2 curve = arc;
CGAL::Arrangement_2< CGAL::Arr_circular_line_arc_traits_2< CGAL::Exact_circular_kernel_2 > > myArrangement;
cout<<curve<<endl;
cout<<myArrangement.is_valid()<<endl;
insert ( myArrangement, curve );
cout<<"done"<<endl;
代码编译没有警告,我在第3行使用circle1或circle2都没有关系,结果是一样的。
程序在分段错误发生之前打印以下内容:
1/1 1/1 2/1 1 0 1/1 -1/1 2/1 1 1/1 0 1/1 -1/1 2/1 1 1/1
1
所以myArrangement 和curve 的值似乎是有效的。
任何想法我做错了什么?
我知道我可以使用另一个内核,但我想比较不同内核的性能,所以不使用这个内核并不是真正的解决方案。
【问题讨论】:
标签: cgal