拖动定位数学

时间:2018-04-19 08:22:38

标签: javascript typescript math

我试图实现一个功能,您可以在屏幕上拖动以更改对象的位置。 现在,对象的移动方式与mouseX的更改类似。

我想要的是你拖动鼠标在屏幕上越往下,对象移动得越慢。 我在数学上非常糟糕,所以我现在真的不知道如何以一种好的方式实现这一目标。

现在我正在那样做

factor = Math.abs(e.deltaY)/4;
this.newX = this.currentX + (e.deltaX / factor);

currentX是对象的起始X值。

不知道我想要实现的目标是什么,或者我是否提供了所有信息,但我们非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你的算术总是等于4。

考虑使用像exponent这样的函数。例如,

USE_FAKE_OPEN

如果你想在近距离提供因子1并且每100个像素提供一半因子(我有任意合理的值),那么

factor = Exp(- k * Abs(deltaX))

请注意,我的意思是乘法因素:

0.5 = exp( - k * 100)
ln(0.5) = -k * 100
k = -  ln(0.5) / 100 ~= 0.007

现在,小距离的速度为1,100为0.5,0.25为200,0.125为300等等。

如果你想要另一种依赖,就有可能找到合适的功能。