浮点精度问题及解决方案
摘要:
关键字:Vector, float, precision, rounding algorithm最近在编写一个矢量运算库,将所有的平面CAD/CAM图形转化为矢量,采用树形组织:形状 -> 轮廓 -> 段,段有几种基本类型:直线,圆弧,Bezier等,在计算两个矢量集合的 交,并,减,异或操作时,遇到了严重的问题,该问题是由浮点数本身不精确造成的,例如:计算直线与圆弧的交点坐标后,反过来检查,你会发现,交点并没有落在直线上,或者交点到圆心距离并不相等。等等类似问题。并且该误差会随运算次数而累计。若用一个很小的阀值作为检查的附加条件,会带来大量的算法改动,并且在少数情况下还是会出错。 阅读全文
posted @ 2008-09-02 14:53 塞伦盖蒂之鹰 阅读(380) 评论(0) 推荐(0)
浙公网安备 33010602011771号