blockquote>I mean when I draw a diagonal line slowly it still draws ‘stairs.’ I don’t know why I imagined 2 wiimotes would make that stop.
Averaging position data to smooth mouse movements is then apparently the key to perceived accuracy (you’re actually losing accuracy through averaging).
The root of the problem of jagged lines is that position data from the Wiimote always contain “small errors”. Averaging aims at canceling those out. I guess whether you average over data from one or two Wiimotes won’t make much of a difference (other than having twice the amount of data).
The problem is to decide on the “window”, i.e. the number of last values or time span, over which to average. A large window will make it very smooth but also delay mouse movements, i.e. the cursor will always be behind the actual position of the IR pen. A small window will make it less smooth but more responsive.
I chose the window to be the last 7 position values, which seems to work well with “normal speed” movements. Ideally, the window would be smaller if you do fast movements and larger when doing slow movements. Maybe an “adaptive” averaging, that chooses the window size based on the speed of IR pen movements, is a better solution.
I’m also pretty sure that other people have encountered and solved this (or a similar) problem in other domains…
Uwe