【发布时间】:2010-07-30 03:46:42
【问题描述】:
好的,这可能是一个非常简单的问题。几年来我没有上过处理对数的数学课,所以我很抱歉。所以我有一个 USB 控制器,我用它来用左操纵杆控制屏幕上的鼠标。现在,它的工作原理是控制器返回 0.00 和 1.00 之间的双精度值,具体取决于将操纵杆推向该方向的距离(0.00 中心,1.00 一直推到上面)。我正在使用它通过将返回值乘以给定速度(返回双倍 * 速度)来调整鼠标移动的速度。这给了我一个线性速度。但是为了鼠标和点击屏幕上的东西的准确性,我希望它更加对数,因为当几乎没有推动时它真的很慢,然后随着你将操纵杆移动得更远,速度会以对数增加。这样,您可以在屏幕上移动时获得良好的速度,同时在缓慢移动时也具有良好的灵敏度。所以我只需要公式的帮助,因为我确信它很简单。另外,我正在使用Java。 现在我的公式是:
double value (value given by controller)
int speed = 25;
value += value * speed;
然后我用它来移动鼠标。 谢谢, 布雷登
【问题讨论】:
-
我猜你的意思是指数...
-
不是吗? :) 指数意味着更高值的加速度。我认为他希望加速度处于刻度的下限,这意味着使用对数函数。
-
他说“在勉强推动的时候真的很慢”......但并没有真的说明 log/exp 的差异。
-
嗯,是的,你可能是对的 :)
-
非常好的问题,赞成。可能会用到一些段落。