Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置自定义滑块的值_Javascript_C++_Math_Numbers_Formula - Fatal编程技术网

Javascript 如何设置自定义滑块的值

Javascript 如何设置自定义滑块的值,javascript,c++,math,numbers,formula,Javascript,C++,Math,Numbers,Formula,我正在创建一个滑块控件,但设置值时遇到问题 _x = 512; _y = 256; _width = 128; _height = 12; _min = 0; _max = 10; 我做了一些事情,比如 // set the value _input = 5; _value = median(_x-(_width/2)+(_input/_max),_x-((_width/2)),_x+((_width/2))) 将输入为5,应该把滑块放在中间,但它没有,我想我在某种程度上计算错误。 _x-(

我正在创建一个滑块控件,但设置值时遇到问题

_x = 512;
_y = 256;
_width = 128;
_height = 12;
_min = 0;
_max = 10;
我做了一些事情,比如

// set the value
_input = 5;
_value = median(_x-(_width/2)+(_input/_max),_x-((_width/2)),_x+((_width/2)))

将输入为5,应该把滑块放在中间,但它没有,我想我在某种程度上计算错误。

_x-(_width/2)将以百分比表示为0,以值表示为0


_x+(_-width/2)将为您提供100%,10%的值。最大映射
x0€[\ux-\uwidth/2..\ux+\uwidth/2]
sl€[0..10]
线性映射,反之亦然,这不是什么大问题

如果具有
x0
:偏移量
-(\ux-\uwidth/2)
将其转换为
0..\uwidth
,则
0..10
需要
10/\uwidth
的比例:

sl == ( x0 - (_x-_width/2) ) * 10 / _width    // float div unless 10 | _width
反向:

x0 == (_x-_width/2) + sl * _width / 10

注意
int
vs.
float
division和rounding(
+.5
)。

关于value=\ux+floor(\uinput/\umax*\uwidth)的情况如何:C做类似于value=\ux+floor(7/\umax*\uwidth)的事情;给我11.95我不知道怎么可能。。floor()应该返回整数,在x中可能也有整数。所以它真的不应该是11.95_value=x+floor(7/max*width)=512+floor(7/10*128)=512+89=601从那时起我一直在研究它,最终解决了它。似乎我必须将范围映射到最小/最大值。在任何情况下,请遵循此处的解决方案。