Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Axis/Slider Scale (http://www.chiefdelphi.com/forums/showthread.php?t=134784)

Ozuru 17-02-2015 17:14

Axis/Slider Scale
 
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

Re: Axis/Slider Scale
 
Code:

(stick.get() + 1) / 2

vps 17-02-2015 17:24

Re: Axis/Slider Scale
 
In my experience, I've found that the slider has been unreliable. So, just watch out buddy.

Ether 17-02-2015 17:32

Re: Axis/Slider Scale
 

Quote:

Originally Posted by Ozuru (Post 1445938)
The range is from -1 to 1 and I need to convert it to be from 0 to 1 rather than -1 to 1.

Quote:

Originally Posted by Jared (Post 1445945)
(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

Re: Axis/Slider Scale
 
Quote:

Originally Posted by Jared (Post 1445945)
Code:

(stick.get() + 1) / 2

Quote:

Originally Posted by Ether (Post 1445957)





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

Re: Axis/Slider Scale
 
Quote:

Originally Posted by Ozuru (Post 1445938)
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?


All times are GMT -5. The time now is 01:44.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi