Subject: CGAL users discussion list
List archive
- From: Stefan <>
- To:
- Subject: [cgal-discuss] Intersecting conic arcs
- Date: Wed, 29 May 2019 02:45:44 -0500 (CDT)
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Neutral ; spf=Pass
- Ironport-phdr: 9a23:6oD2QRVuc9pJ4WCHmahXB3zyZuPV8LGtZVwlr6E/grcLSJyIuqrYYxeAt8tkgFKBZ4jH8fUM07OQ7/m5HzVav93Y6ipKWacPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sBjdutMLjYd8K6s9xQbFrmVWd+9L2W5mOFWfkgrm6Myt5pBj6SNQu/wg985ET6r3erkzQKJbAjo7LW07/dXnuhbfQwSB4HscSXgWnQFTAwfZ9hH6X4z+vTX8u+FgxSSVJ8z2TbQzWTS/86dmTQLjhSkbOzIl9mzcl8p9h79Zrh28vRxy24DaboGLOvR9Y63Scs8VS2VaU8ZNVSFNHp+wY5cTA+YfO+tTsonzp0EJrRu7HQSiGf/vxSFGhnDs260xzuMsERrC3AwnBdIBrnLUrdTyNKoJTe+117PEzS7YYPNZwzvy8pTHfgo7rvGQRL99d9fax0coFwPAlFqQqIrlMiuT1usXqGeU9O5gWvy1h2E7rAFxpyCjydsjiobTgoIZ0FfE9T92wIszONa2S1Z7bMa5HJZUsyyWLYV7T8A4T2xruSs20LwLtJ+9cSMX0poo3QTfZOaCc4WQ4hLsSuKRITBgiXJjd7+znRCy/lK7xeLnUsm7zkxGoTZCktnJrnwN1hrT5dabSvZl40us3TKC2xrd5+xHO0w5lqvWJ4Qgz7MxjpYTtF7MHi7ymEX4lq+WcUAk9/Cz6+TjZbXmvIGTN4l1iwH5Kakhhte/Df4jMgcVUGiX4/6z26H58ULjXLVGluc2nbXBsJDGOcQboba0DBNa0ok57xazFiqp0NUDnXYbMVJFYwmHgpPyO1DOJfD4Fe2wj06tkDdt3fDGP6fuDo/DLnjZw//deuN25EdYjQYy1ttC/Il8C7cbIfu1VFWimsbfC0oCLwG6yuCvXM550ZkTX3CIKqSCdrjYvhmB7aQmP7/fN8cupD/hJq19tLbVhngjlApFJPX77d4scHm9W89eDQCBe3O13oUKCiERtAV4ReesgUHQCWcCNUb3ZLo143QAMKzjCI7CQo63h7nYgHWwBdtNbG8AA1vKGGu6LdzZCcdJUzqbJ4paqhJBVbWlTNZ8hxfy8gnzwbBjI6zf/ShK7J8=
Hello everyone,
I am working on an application that requires me to repeatedly compute the
intersection points of two conic arcs in an exact manner. Currently, I am
using CGAL's Arrangement_2 class in combination with Arr_conic_traits_2 to
carry out this task. In particular, I compute the arrangement of two conics
from which I extract the vertices that correspond to intersections. The
following minimal example (which I derived from
https://doc.cgal.org/latest/Arrangement_on_surface_2/Arrangement_on_surface_2_2conics_8cpp-example.html)
reflects my current approach.
#include <CGAL/config.h>
#include <CGAL/Cartesian.h>
#include <CGAL/CORE_algebraic_number_traits.h>
#include <CGAL/Arr_conic_traits_2.h>
#include <CGAL/Arrangement_2.h>
typedef CGAL::CORE_algebraic_number_traits Nt_traits;
typedef Nt_traits::Rational Rational;
typedef Nt_traits::Algebraic Algebraic;
typedef CGAL::Cartesian<Rational> Rat_kernel;
typedef Rat_kernel::Point_2 Rat_point_2;
typedef Rat_kernel::Segment_2 Rat_segment_2;
typedef Rat_kernel::Circle_2 Rat_circle_2;
typedef Rat_kernel::Line_2 Rat_line_2;
typedef CGAL::Cartesian<Algebraic> Alg_kernel;
typedef CGAL::Arr_conic_traits_2<Rat_kernel, Alg_kernel, Nt_traits>
Traits_2;
typedef Traits_2::Point_2 Point_2;
typedef Traits_2::Curve_2 Conic_arc_2;
typedef CGAL::Arrangement_2<Traits_2> Arrangement_2;
int main() {
Arrangement_2 arr;
Point_2 ps1(Rational(1, 4), 4);
Point_2 pt1(2, Rational(1, 2));
Conic_arc_2 c1(0, 0, 1, 0, 0, -1, CGAL::COUNTERCLOCKWISE, ps1, pt1);
insert(arr, c1);
Conic_arc_2 c2(58, 72, -48, 0, 0, -360);
insert(arr, c2);
for (auto vit = arr.vertices_begin(); vit != arr.vertices_end(); ++vit)
{
std::cout << "(" << vit->point() << ")";
if (vit->is_isolated()) {
std::cout << " - Isolated." << "\n";
} else {
std::cout << " - Degree " << vit->degree() << "\n";
if (vit->degree() == 4) {
std::cout << "Found intersection at (" << vit->point() <<
")\n";
}
}
}
return 0;
}
I was wondering if there exists a simpler way of achieving this with the
tools that CGAL provides? Does there exist some variant of CGAL's
intersection() method that is able to handle conic arcs?
Any help is very appreciated! Thank you!
--
Sent from: http://cgal-discuss.949826.n4.nabble.com/
- [cgal-discuss] Intersecting conic arcs, Stefan, 05/29/2019
- Re: [cgal-discuss] Intersecting conic arcs, Efi Fogel, 05/29/2019
- Re: [cgal-discuss] Intersecting conic arcs, Stefan, 05/29/2019
- Re: [cgal-discuss] Intersecting conic arcs, Efi Fogel, 05/29/2019
- Re: [cgal-discuss] Intersecting conic arcs, Stefan, 05/29/2019
- Re: [cgal-discuss] Intersecting conic arcs, Efi Fogel, 05/29/2019
Archive powered by MHonArc 2.6.18.