0

現在、Wiimote をコンピューターのマウスとして使用できるようにするツールに取り組んでおり、問題が発生しています。wiimote が返す x 座標と y 座標は、PC の画面解像度と比較して非常に小さいため、これらの小さな値を大きな解像度の値にマップする方法を探しています。

たとえば、pc の最小 x 値は 0 で、ほとんどの x 値は 1300 で、wiimote の最小 x 値が 0 であることもわかっていますが、ほとんどの値はわかりません。

画面座標を横切ることなく、wiimote が画面上でマウス ポインターを移動するようにしたいだけです。

4

2 に答える 2

2

大きな最大値 / 小さな最大値 * 小さな値 = 大きな値

于 2010-09-13T03:19:37.293 に答える
0

あなたの問題は実際にはあなたが思っているものとは異なります。私は実際にはWiiリモコン(そのような厄介な名前..)を持っていませんが、位置ではなく距離を返すと思います。したがって、あなたがしなければならないことは、カーソル位置を持っていることです:

Point pt=new Point(Width/2, Height/2);
// initialized in the center of the screen

更新イベントを受信するたびに、ポイントまでの距離を追加します。

// say you get the distance in dx and dy
pt.x=Math.Max(0,Math.Min(Width,pt.x+dx*sx));  // clamped on screen
pt.y=Math.Max(0,Math.Min(Height,pt.y+dy*sy)); // clamped on screen
// and update your UI acordingly

ここでsx、およびsyはXおよびY座標のスケーリング値です。それぞれ1.0から始めて、必要な移動速度が得られるまで遊んでください。

于 2010-09-13T03:23:32.777 に答える