求取模型的三维凸包问题

81 篇文章 2 订阅
62 篇文章 0 订阅

 三维凸包最经典的算法是:增量法。

在这本书:"Computational Geometry in C"  (Second Edition) by Joseph O'Rourke., 中文名《计算几何》

这本书中有完整的增量法求取凸包的代码。

下载的地址:http://maven.smith.edu/~orourke/books/ftp.html

 

我这里想说明的是,那本书中给出的代码中顶点类型为int型。起初我想int类型有了,改成float型是比较简单的,但是直接改过以后结果始终不对,甚至怀疑是算法的问题。。。后来看了原书中的解释,才知是作者故意使用int类型计算的,因为int计算效率高,而且整个凸包算法中实际计算的也就是一个函数:VolumeSign函数。

 

这段代码中,作者故意使用了double计算,最后再转化为int类型结果。

 

所以当顶点为float型时,可以将float型扩大适当的倍数成了整数。注意只要上面的那个函数中double不越界就可以。最后再将所得凸包的顶点缩小相应的倍数。

注意:这里使用整数代替浮点数,速度大大提高,但是精度会有所损失。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值