【发布时间】:2014-11-29 19:36:01
【问题描述】:
假设我有一个最小值为 -1,最大值为 1 的滑块。如果用户将滑块手柄放在中间,那么我们的值为 0。我只是不知道如何将其计算为 -1 到 1 的 50%
然后我需要做与我相反的事情,首先获取滑块的百分比(比如 50%)。我现在需要计算 -255 到 255 的 50% 是多少(应该返回 0)。我已经被这个问题困扰了一段时间,如果我能得到任何帮助,我将不胜感激。
提前致谢!
【问题讨论】:
假设我有一个最小值为 -1,最大值为 1 的滑块。如果用户将滑块手柄放在中间,那么我们的值为 0。我只是不知道如何将其计算为 -1 到 1 的 50%
然后我需要做与我相反的事情,首先获取滑块的百分比(比如 50%)。我现在需要计算 -255 到 255 的 50% 是多少(应该返回 0)。我已经被这个问题困扰了一段时间,如果我能得到任何帮助,我将不胜感激。
提前致谢!
【问题讨论】:
你有两个刻度,一个从 0 到 100,另一个从 -255 到 255。从一个到另一个的公式很简单:
请注意,百分比已经表示此“进度”值,如 20% = (20 - 0)/100。另请注意,范围可以定义为 max - min。
所以假设你从 -255 到 255 包括在内,那就是 511 个离散值(计算 0,假设你使用 int's),并且假设百分比是一个介于 0 和 100 之间的值(而不是介于 0 和 1 之间):
从百分比到像素:-255 + 511 * 百分比 / 100
从像素到百分比:0 + 100 * (pixel + 255) / 511
从 -1 到 1 的比例也是如此,我猜它使用连续值,因此具有区间 [-1, 1] 的大小范围,即 min = -1 和 range = 2
【讨论】:
这应该可以解决问题:
function percentage($slider){
return ($slider + 1) * 50;
}
function slider($percentage){
return ($percentage/100) * 510 - 255;
}
【讨论】: