我知道我是个白痴,我相信这是简单的数学。但我似乎无法绕过它,这是我的情况
当X = 3
时,我需要Y = 0
,而当X = 0
我需要y = 1
时;
我正在尝试根据X
的低位来填充进度条。
填充进度条(Y
)的值必须介于0
和1
之间。
数学?
答案 0 :(得分:3)
// "Single" is just like "float"
Single y = (3.0f - x) / 3.0f;
那样
x=3 -> y=0.00
x=2 -> y=0.33
x=1 -> y=0.66
x=0 -> y=1.00
可替换地:
// different points of view are better
Single y = -(x - 3.0f) / 3.0f;
答案 1 :(得分:1)
正如我从高中最了解的那样:
y = a * x + b 你必须解决方程: 0 = a * 3 + b和 1 = a * 0 + b
a = -b / 3; b = 1
所以你的等式是:y = -1 / 3 * x + 1
private float GetProgressValue(float x)
{
return x/-3f + 1f;
}