Smoothing and Sensitivity
I don't quite understand why smoothing and sensitivity are in here. Why would the cursor movement be smoothed? It's just like a mouse in that when you move the position the cursor should move. Yet a mouse doesn't use smoothing, it merely reports the position it is currently at. As you move the mouse from point A to point B it must at some point pass over all the points in between and you end up getting interpolated naturally -- why subject it to false positioning? If it's real jerky the circle idea seems good, but since the wiimote reports X,Y values at such a fast rate this should not offer much benefit at all. Smoothing is, for the most part, unnecessary.
Since you use a subset of the 1024x768 image already (for relative position to the sensor bar) sensitivity would merely further restrict the capabilities of pointing. Such a feature would either expand or contract the subwindow and would therefore damage functionality. Furthermore I don't really think it would work at all since the wiimote is really a 'state' device (probably not the correct term, but it reports the current absolute state); meaning if you are pointing it at the edge of the screen it should report that it is pointing at the edge of the screen (or close since it's not perfect). If you lower sensitivity then it might be possible to slowly move the wiimote to the side and have the cursor only move an inch -- this is undesirable. Likewise if you increase it your cursor could be way off in no-mans-land when you're only pointing an inch to the left (with respect to the origin of the screen). Sensitivity simply doesn't make sense with a pointing device like this (it does with a mouse since the mouse pad doesn't directly relate to the screen size of the screen).
The nature of the device already solves these problems so there should be no need to artificially correct them. -- Para 13:48, 29 February 2008 (PST)
- Perhaps a better term to use instead of "smoothing" would be "noise filtering"? Bushing 14:52, 29 February 2008 (PST)
- Have you ever used the raw Wiimote input to control the mouse cursor? It jumps all over the place. 220.127.116.11 08:49, 1 March 2008 (PST)
- I wrote the wiiuse library and included an SDL example for pointing the mouse. I do not see any distortions, it's as smooth as my mouse (within the limited size Window). If you try to increase the size of the window then of course it will jump because a 1 pixel change from the wiimote may translate to a multi-pixel change on the screen. Is that what this article it talking about? Even that would not be true smoothing because you'd just be interpolating between nodes on a 'grid', sort of like snapping to the next X,Y position. Imagine a square with 4 points, one on each corner. You have a cursor you can control using the arrow keys, where pressing an arrow will move the cursor to the next corner. When you move your cursor it may travel along the line via interpolation. However, you only have four states so your accessible resolution is still just 2x2 even though you may see more due to interpolation. What you see doesn't matter, it's what you can access -- in this case 2x2 and nothing more. If the article is suggesting a visual feature for 'smoothing' the IR pointing then I do not think it's relevant because it has little to do with the functionality of the wiimote. -- Para 05:29, 3 March 2008 (PST)
For getting the position of the pointer all I'm doing is getting two of the IR dots, converting them to pixel co-ordinates, getting the average and then flipping both of them. Works perfectly so far.