我目前正在开发一个工具,该工具可以将Wiimote用作计算机鼠标,但遇到了问题。wiimote返回x和y坐标,与我的pc的屏幕分辨率相比,它们非常小,我正在寻找一种方法来将这些小值映射到我的大分辨率值。
例如,pc的最小x值是0,最大x值是1300,我也知道最小x值是0,但不知道大多数值。
我只想让wiimote在屏幕上移动鼠标指针,而不需要穿过屏幕坐标。
发布于 2010-09-13 11:19:37
大的最大值/小的最大值*小值=大值
发布于 2010-09-13 11:23:33
你的问题实际上和你想的不一样。我实际上没有Wiimote (这样一个古怪的名字..)但我假设它返回的是,而不是。所以你要做的就是有一个光标的位置:
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开始,每个人都玩,直到你得到你想要的移动速率。
https://stackoverflow.com/questions/3697668
复制相似问题