读书人

数据处理超过精度范围的有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

数据处理超过精度范围的问题
最近做一个图形处理程序,需要计算出2点之间的斜率,采用double精度,但是当2点之间的直线接近水平和垂直,斜率过大或者过小的时候数据超过范围,就会产生错误。把精度换为long double也解决不了问题。各位大虾见多识广,不知道有没有什么好的解决办法!

[解决办法]
可以将坐标系旋转45度进行计算,然后将坐标系转回
[解决办法]
当你贴近x轴,斜率过小应该没啥问题吧?大不了你到时候用0表示。这个对于图形处理系统绝对够了

至于贴近y轴,任何数据类型都不可能保存的,因为这只在数学上有意义,所以一般而言在这种情况下我们应该用x=b这种解析式,而不是y=kx+b。

记住:当直线和y轴平行或者接近平行,任何数学工具都不可能给你一个“斜率”的,因为此时斜率是无意义的

读书人网 >C++

热点推荐