计算几何问题中不可避免的会遇到浮点数计算误差和数值溢出的问题(计算结果超出浮点数表示范围)处理的问题,通常有三种基本的方法处理这种问题:
1.采用整数计算
强制所有感兴趣的坐标点位于一个固定大小的整数网格中,因此所有得到关注点的坐标值变成了整数,这个时候判断两个点是否重合(相等)或者线段是否相交则可以精确计算。但一个代价就是线段的交点不一定位于整数格点上。
2.采用双精度实数
一种可能的方法就是使用单精度浮点数存储坐标值,使用双精度浮点数完成算法的计算过程。
3.任意精度的计算
这个方式不存在精度的问题,但是计算的效率将会很低,参考文献C. M. Hoffmann[1,2]
[1]C. Hoffmann. Geometric and Solid Modeling. Morgan-Kaufmann, San Mateo, CA, 1989.
[2]C. M. Hoffmann. The problems of accuracy and robustness in geometric computation. IEEE
Computer, 22(3):31–41, March 1989.