我有这段代码将鼠标光标的Xfloat
坐标转换为一个值:
private float XToFloat(int x)
{
return (float)(x / (float)this.Width);
}
结果是这样的0.01234567现在我如何将其转换回原始坐标?任何人都可以帮忙吗?
我有这段代码将鼠标光标的Xfloat
坐标转换为一个值:
private float XToFloat(int x)
{
return (float)(x / (float)this.Width);
}
结果是这样的0.01234567现在我如何将其转换回原始坐标?任何人都可以帮忙吗?
它只是一个简单的数学。使用代码。
private float XToFloat(int x)
{
return (float)(x / (float)this.Width);
}
例子:
//If Width Value
this.Width = 10;
调用函数并将值传递给参数,如XToFloat(5);
函数将返回值0.5。
//inside the function
(float)(x / (float)this.Width); => (float)(5 / (float)10);
//z = x/y
要将其转换回原始值,我们创建了一个函数,我们将浮点值乘以宽度。
private int FloatToX(float f){
return (int)((float)this.Width*f);
}
示例是FloatToX(0.5)
0.5x10将返回一个整数值5
//inside the function
(int)((float)this.Width*f) => (int)((float)10*0.5)
//x = zy
在数学上它只是
得到 z
z = x/y
得到 x
x = zy
得到你
y = x/z
这是简单的数学:
float floatValue = (float)(x / (float)this.Width);
int cursorX = floatValue * this.Width;
编辑:将浮点值视为百分比。它的范围从 0 到 1,相当于 0-100%。x 坐标的浮点版本只是宽度的百分比:
0% width 100%
+-------------+
| |
| 80% |
| X |
| |
+-------------+
因此,要获取原始坐标,您将宽度乘以百分比。
让我们说 this.Width 现在为 Y
转换后的值(0.01234567)为 Z
所以你正在做的是
z=x/y
你想要的是x,这次你有Z
Z*Y=X