用qt做的绘图工具,具有组合图元的功能,但是组合图元放大缩小之后图元会存在误差,请看下例:
两个矩形组合为一个图元,未进行放大缩小操作之前第一个图元的右下角和第二个图元的左上角重合在一起,当进行多次拖拽放大缩小之后变为下面的情况:
可以看出第一个图元的右下角和第二个图元的左上角不再重合在一起了,产生了误差。主要原因是QT矩形的宽带高度值为整形,进行比例放大缩小后产生的小数被舍弃,从而造成误差,请问有没有好的解决办法?
方法1:以最小刻度为整形单位长度,即便中途比如产生1.5,那么下次的放大缩小都不基于该值,而去基于原始值来算。
方法2:提高精度,运算用高精度,绘制取低精度,运算还是使用方法一每次基于一个原始值来算。
你好,能不能详细说一下,我没有太明白你说的这两种方法。
@城东: 计算机不能没有无限小,也不能无限大,因此你需要有个基准值。放大或缩小不要基于计算的结果去计算,要基于基准值计算。
@花飘水流兮: 你好,你说的这个基准值是指原始值,还是说原始值值得是一个浮点型的数值,用来计算的