多边形bool操作效率对比

http://www.complex-a5.ru/polyboolean/comp.html 一文比较了2维多边形bool操作的效率。


根据benchmark,

PolyBoolean和gpc是比较高效的算法。但是严格意义上并不能用他们。


PolyBoolean

以有符号整数的形式表示点坐标,这样当然高效,对于浮点型点坐标,通过把浮点scale到整型进行计算。

目前 Polyboolean有c++和c#版本。地址:http://www.complex-a5.ru/polyboolean/index.html

以下是一些数据:

Library name Principal author Language
Boolean (v. 1.34) Klaas Holwerda C++
Boolean Operations On Polygons (v. 2.0) (BOPS) Matej Gombosi C++
CGAL (r. 1.1) Joint project of 7 sites C++
Clippoly (pl. 7) Klamer Schutte C++
Constructive Planar Geometry (CPG) Dave Eberly C++
GPC (v. 2.22) Alan Murta C
LEDA (v. R-3.6.1) Max-Planck-Institut fuer Informatik C++
PolyBoolean v0.0 Michael LeonovAlexey Nikitin C++

Capabilities


Library AND SUB OR XOR HOLES KH I SI DV KH O
Boolean + + + + + + - + +
BOPS + - + - + - - - +
CGAL + + + - - - - - -
Clippoly + + - - - - - - -
CPG + + + + + - - + -
GPC + + + + + + + + -
LEDA + + + + + - - + -
PolyBoolean + + + + + + - +

Speed

vc6.0编译,PC机器, Pentium II (233 MHz) and 96Mb RAM。多边形数据有字体的等高线生成。测试程序运行5次每个bool操作。测试结果如下:

N:所有多边形的顶点。时间单位为妙(s),粗体位最佳数据。

Library N=3885 N=7076 N=20190 N=69839 N=174239
Boolean 1.084 1.773 5.923 23.219 65.927
Clippoly 15.482 51.965 487.942 ... ...
GPC 0.160 0.381 8.570 64.463 133.670
LEDA 0.806 1.422 3.801 16.636 ...
PolyBoolean 0.158 0.255 0.721 3.532 16.011




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值