所以,不要告诉我的任何一位高中数学老师,但不能把这一点弄清楚。
我有一个图像设置根据用户是向上还是向下滚动来调整大小。如果他们向下滚动,那么我使用:
height -= height * 0.1
width -= width * 0.1
当用户向上滚动时,它设置为:
height += height * 0.1
width += width * 0.1
这不会使图像以与图像缩小相同的速率变大,因为它基于当前大小的10%。我考虑过保存以前的尺寸,但如果有人向下,向下,向下,向上,向下,向上,向上,向上等滚动,它就不会起作用。任何人都知道使用这个等式来使图像变得更大,速度越来越小吗?
答案 0 :(得分:0)
缩小的内容与:
相同height *= 0.9;
width *= 0.9;
并扩大:
height *= 1.1;
width *= 1.1;
一个与另一个不相反的原因是1 / 1.1
不是0.9
而是0.9090909090909
。相反增加10%并没有减少10%,而是减少了约9.1%。
如果您使用1 / 1.1
代替0.9
,则会按相同的费率调整大小。这自然与将1.1
除以缩小相同:
height /= 1.1;
width /= 1.1;
Rory McCrossan在从原始大小计算大小方面有一定的意义,这样可以避免累积舍入错误。变量zoom
是一个整数值,从原始大小的零开始,每10%步长增加1,你得到:
height = originalHeight * Math.pow(1.1, zoom);
width = originalWidth * Math.pow(1.1, zoom);