CGAL 4.7贝塞尔曲线的排列在某些输入上崩溃 [英] CGAL 4.7 Arrangement of Bezier curves crashes on some inputs

查看:245
本文介绍了CGAL 4.7贝塞尔曲线的排列在某些输入上崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用CGAL 4.7的排列包(在Windows上为64位)为研究项目进行Bezier曲线的2维排列。不幸的是,在插入Bezier曲线时,我经常遇到某些(通常是近)简并输入的崩溃。

I am using the Arrangements package of CGAL 4.7 (64-bit, on Windows) to make 2-d arrangements of Bezier curves for a research project. Unfortunately, I keep experiencing crashes on some -usually (near) degenerate- input, when inserting Bezier curves.

作为一个简单的示例,我添加了两个数据文件的内容可以由CGAL 4.7随附的Bezier_curve示例项目(在... / CGAL-4.7 / examples / Arrangement_on_surface_2中找到)读取。

如果我将两个文件中的一个文件都喂入该示例,则该示例崩溃。

如果我使用随附的Bezier.dat文件以及我尝试过的其他一些测试用例,则该示例对我而言是正确的。

As a simple example I have added the content of two data files that can be read by the Bezier_curve example project provided with CGAL 4.7 (found in .../CGAL-4.7/examples/Arrangement_on_surface_2).
The example crashes for me if I feed it either of the two files.
The example works correctly for me if I use the Bezier.dat file that comes with it, and on some other test cases that I tried.

Bezier_crash1.dat -(非常简单的测试用例)

Bezier_crash1.dat - (very simple test case)

1
4 0 100 100 0 100 200 0 100

Bezier_crash2.dat -(遇到记录在我自己的实验中)

Bezier_crash2.dat - (encountered and recorded in my own experiments)

6
4  2581853/262144 174874249452033/4398046511104  5673646619833933/35184372088832 2756888783932123/70368744177664  6296137/131072 15962699/131072  105/2 5687589/65536
4  105/2 5687589/65536  7466423/131072 6787657/131072  4884829/32768 1213073/16384  120 13200823/131072
4  120 13200823/131072  13772385/131072 14995659/131072  8262217/131072 13388069/131072  105/2 5687589/65536
4  105/2 5687589/65536  5500343/131072 9362287/131072  5544234768323137/35184372088832 5711427009345511/140737488355328  2581853/262144 183625004300137/2199023255552
4  696761914568827/4398046511104 3007857/16384  1156274078886441/17592186044416 301767055302015/8796093022208  4173567/65536 1173535/8192  97589/1024 428833/4096
4  97589/1024 428833/4096  8317825/65536 541797/8192  10142101/131072 1505657/16384  9752923/131072 1168223/16384

我不知道我是否应该(也被允许)发布CGAL示例的代码,请告诉我是否需要它。我还拥有比这两个更多的崩溃测试用例,但是我希望这些崩溃是我的个人CGAL设置存在的问题,其余的问题将在我修复后神奇地解决:)

I don't know if I should (and am allowed to) post the code of the CGAL example, please let me know if it's needed. I also have more crashing test cases than just these two, but I am hoping that these crashes are a problem with my personal CGAL setup, and that the rest will magically be solved when I fix it :)

推荐答案

我们已修复了最有可能导致此问题的错误。它是在CGAL组件中处理Bezier曲线的,即 Arr_Bezier_curve_traits_2.h

We have fixed the bug that most probably causes this problem. It was in the CGAL component that handles Bezier curves, namely, Arr_Bezier_curve_traits_2.h.

这篇关于CGAL 4.7贝塞尔曲线的排列在某些输入上崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆