On Tue, Feb 2, 2016 at 1:12 PM, Bill Spitzak <spit...@gmail.com> wrote: > > > On Mon, Feb 1, 2016 at 6:38 PM, Jason Gerecke <killert...@gmail.com> wrote: >> >> >> Ultimately, the tilt information is almost universally used by >> applications to set brush orientation. To do that, you have to use >> some trig to transform the X and Y tilt values into something like >> Alt-Az form. Tilt on a scale of 0-1 is fine for calculating the >> azimuth, but you can't calculate the altitude angle without knowing >> what 100% physically corresponds to. You can guess (e.g. assume it >> corresponds to the reasonable physical limit of +-90 degrees), get a >> horribly wrong answer (since the hardware limit is actually +-64 >> degrees), and then either ignore the discrepancy or fudge other bits >> of the brush engine to not do nonsensical things. Actually, to be >> fair, that's exactly how GIMP does things right now :P > > > 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
That's certainly true for GIMP and Krita at least (see [1] and [2]). Its incorrect, but its "close enough" that nobody seems to complain (though I've been tempted to in the past ;)) > 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. > > 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. > > 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. > I've been down this road before a few years back. Does the hardware measure and report true angles or does it measure a projection? If its a projection, does it report them directly, or does it calculate sin^-1 to transform it into an angle? In the end, the specs from the firmware guys say to interpret the data as measured in degrees, so that's what we do. [1]: https://git.gnome.org/browse/gimp/tree/app/core/gimpdynamicsoutput.c#n548 [2]: https://github.com/KDE/krita/blob/master/libs/image/brushengine/kis_paint_information.cc#L507 Jason --- Now instead of four in the eights place / you’ve got three, ‘Cause you added one / (That is to say, eight) to the two, / But you can’t take seven from three, / So you look at the sixty-fours.... _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel