マウスカーソルのX座標をfloat
値に変換する次のコードがあります。
private float XToFloat(int x)
{
return (float)(x / (float)this.Width);
}
結果はこの0.01234567のようなものです。これを元の座標に戻すにはどうすればよいですか? 誰でも助けることができますか?
マウスカーソルのX座標をfloat
値に変換する次のコードがあります。
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;
関数を呼び出して、関数のようにパラメーターに値を渡すと、値0.5XToFloat(5);
が返されます。
//inside the function
(float)(x / (float)this.Width); => (float)(5 / (float)10);
//z = x/y
それを元の値に戻すために、float 値を Width に乗算する関数を作成します。
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 = zy
yを取得する
y = x/z
こう言いましょう。今Yとしての幅
Zとして変換された値(0.01234567)
だからあなたがしていることは
z=x/y
あなたが欲しいのはxで、今回はZがあるので
Z*Y=X
これは簡単な計算です:
float floatValue = (float)(x / (float)this.Width);
int cursorX = floatValue * this.Width;
編集:フロート値をパーセンテージと考えてください。範囲は 0 ~ 1 で、0 ~ 100% に相当します。x 座標の float バージョンは、単純に幅のパーセンテージです。
0% width 100%
+-------------+
| |
| 80% |
| X |
| |
+-------------+
したがって、元の座標を取得するには、幅にパーセンテージを掛けます。