math:缩放坐标系,使某些点得到整数坐标

cla*_*amp 3 algorithm math geometry

这更像是一个数学问题.nonethelesse我正在寻找伪代码中的算法来解决它.

给定是一维坐标系,具有多个点.点的坐标可以是浮点.

现在我正在寻找一个缩放此坐标系的因子,以便所有点都在固定数字(即整数坐标)

如果我没有弄错的话,只要点数不是无限的,就应该有解决这个问题的方法.

如果我错了,并且没有解决这个问题的解决方案,我感兴趣的是一种尽可能接近解决方案的算法.(即坐标看起来像15.0001)

如果您对具体问题感兴趣:我想克服adobe flash中众所周知的像素拍摄问题,如果缩放整个舞台,则会在位图边界处切割半像素.我想找到一个理想的舞台缩放因子,使我的位图放在整个(屏幕)像素坐标上.

因为我在舞台上放置了两个位图,所以每个方向上的点数(x,y)为4.

谢谢!

Ale*_* C. 6

如建议的那样,您必须将浮点数转换为有理数.修复公差epsilon,并为每个坐标找到epsilon中的最佳有理逼近.

算法和定义概述出现本节.

将所有坐标转换为有理数后,缩放由分母的最小公倍数给出.

请注意,后一个数字可能变得非常庞大,因此您可能希望尝试使用epsilon来控制分母.