<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 1, 2016 at 6:38 PM, Jason Gerecke <span dir="ltr"><<a href="mailto:killertofu@gmail.com" target="_blank">killertofu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br></div></div>
Ultimately, the tilt information is almost universally used by<br>
applications to set brush orientation. To do that, you have to use<br>
some trig to transform the X and Y tilt values into something like<br>
Alt-Az form. Tilt on a scale of 0-1 is fine for calculating the<br>
azimuth, but you can't calculate the altitude angle without knowing<br>
what 100% physically corresponds to. You can guess (e.g. assume it<br>
corresponds to the reasonable physical limit of +-90 degrees), get a<br>
horribly wrong answer (since the hardware limit is actually +-64<br>
degrees), and then either ignore the discrepancy or fudge other bits<br>
of the brush engine to not do nonsensical things. Actually, to be<br>
fair, that's exactly how GIMP does things right now :P<br></blockquote><div><br></div><div>I think a lot of software treats the tilt information as actually the position of a point some distance up the pen relative to the tip. I would guess the hardware produces this directly (by reusing the proximity hardware for a different point higher up in the pen). To get a projection of the pen onto the tablet surface, these values can be fed to atan2.</div><div><br></div><div>If they were actual angles, they must be the angle of the projection of the pen onto the two vertical planes of the x and y axis. This is really noisy when the pen is near one of the axis, and I would think the hardware/driver could not produce this except by calculating atan2 of a more linear value.</div><div><br></div><div>Therefore I would be very suspicious of any claim that the values being produced are angles. The current api reporting them as normalized values seems better.</div><div><br></div></div></div></div>