Способ отображения малых значений на большие и наоборот - PullRequest
0 голосов
/ 13 сентября 2010

В настоящее время я работаю над инструментом, который позволит использовать Wiimote в качестве компьютерной мыши, и я застрял в проблеме. Wiimote возвращает координаты x и y, которые очень малы по сравнению с разрешением экрана моего компьютера, и я ищу способ сопоставить эти маленькие значения с моими большими значениями разрешения.

Например, минимальное значение x в ПК равно 0, а наибольшее значение x равно 1300, и я также знаю, что наименьшее значение x равно 0, но большинство значений не известно.

Я просто хочу, чтобы wiimote перемещал указатель мыши на экране, не пересекая координаты экрана.

Ответы [ 2 ]

2 голосов
/ 13 сентября 2010

Большой максимум / Маленький максимум * Малое значение = Большое значение

0 голосов
/ 13 сентября 2010

Ваша проблема на самом деле отличается от того, что вы думаете. На самом деле у меня нет Wiimote (такого странного имени ...), но я бы предположил, что он возвращает distance в отличие от position Так что вам нужно иметь позицию курсора:

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 для каждого и тренируйтесь, пока не получите желаемую скорость передвижения.

...