像大多数开发人员,我的数学技能是不够的甚少。划分滑块值到范围区段
我有值0到滑块〜和滑块的前半部分应通过标度为0-10运行而滑动件的第二半部应通过值运行11-〜。
的解决方案,我有很程序和看起来如下:
var sliderPercent = timeSlider.sliderPosition;
// What number on the scale of 0 to hoursMax does our % equal?
var position = (this.options.hoursMax/100) * sliderPercent;
var newMin = 0;
var newMax = 10 * 2; // new max is 20, so half way is 10.
var oldRange = (this.options.hoursMax - this.options.hoursMin);
var newRange = (newMax - newMin); // new range is 0-20
if(sliderPercent > 50) {
newRange = (this.options.hoursMax + newMax - this.options.hoursMin);
position -= newMax;
}
var newValue = ((position * newRange)/oldRange);
正如所有的东西,有肯定是一个更好的方法来做到这一点。涉及log和exp以及那些可爱的数学函数的东西。
这也将是很好,如果我可以很容易地分我的滑块与不同范围的部分。 Perpahs 50% - 75%将是11 - 50,最后一个50 - 。我在寻找如何建立更一般的解决方案的理解。
你是什么意思的“〜”?我也觉得你不需要这个滑块的线性缩放比例(除非〜= 20),但我不能告诉你想要什么。 – 2014-09-05 14:03:55
我使用〜来表示无穷大。 – 2014-09-05 14:04:55
含义,一些任意的最终值。我们称之为60. – 2014-09-05 14:06:47