Log in

View Full Version : Axis/Slider Scale


Ozuru
17-02-2015, 17:14
Hi,

Currently I'm having an issue with the slider of my Logitech joystick. The range is from -1 to 1 and I need to convert it to be from 0 to 1 rather than -1 to 1. How would I go about doing this? I'm using the Logitech Extreme 3D Pro and the axis number is 3. I'm using Java but I figured this is a language-wide issue, hence the post here.

Thanks!

Jared
17-02-2015, 17:20
(stick.get() + 1) / 2

vps
17-02-2015, 17:24
In my experience, I've found that the slider has been unreliable. So, just watch out buddy.

Ether
17-02-2015, 17:32
The range is from -1 to 1 and I need to convert it to be from 0 to 1 rather than -1 to 1.


(stick.get() + 1) / 2

Jared gave you the answer.

If you are interested, here's the algebra to solve that kind of problem, for any input and output range, assuming you want a linear conversion from input to output:

Let x be the input and y be the output.

You want a linear conversion, so use the equation for a line:

y = mx + b

When x is -1 you want y to be 0:

0 = m(-1) + b ....(Equation1)

When x is 1 you want y to be 1:

1 = m(1) + b .....(Equation2)

You have 2 equations with two unknowns, so solve them.

Add the two equations:

1 = 2b .....=>..... b = (1/2)

Subtract Equation1 from Equation2:

1 = 2m .....=>..... m=(1/2)

So the conversion is y = (1/2)x + (1/2) = (x+1)/2

Ozuru
17-02-2015, 20:21
(stick.get() + 1) / 2






Jared gave you the answer.

If you are interested, here's the algebra to solve that kind of problem, for any input and output range, assuming you want a linear conversion from input to output:

Let x be the input and y be the output.

You want a linear conversion, so use the equation for a line:

y = mx + b

When x is -1 you want y to be 0:

0 = m(-1) + b ....(Equation1)

When x is 1 you want y to be 1:

1 = m(1) + b .....(Equation2)

You have 2 equations with two unknowns, so solve them.

Add the two equations:

1 = 2b .....=>..... b = (1/2)

Subtract Equation1 from Equation2:

1 = 2m .....=>..... m=(1/2)

So the conversion is y = (1/2)x + (1/2) = (x+1)/2




Thanks for that information and thanks for the great explanation, Ether. I hadn't thought of it that way (as a linear equation pair) but that actually makes sense.

Thank you!

GeeTwo
17-02-2015, 20:48
The range is from -1 to 1 and I need to convert it to be from 0 to 1 rather than -1 to 1.
While I understand that the problem is solved, i'm still rather intrigued -- why did you feel the need to do this; have default be 0.5, and have the joystick(s) serve as a throttle to that?