Nope, the matrices in the code are just basic rotations about x/y/z/ axes. On Tue, May 15, 2012 at 9:25 AM, Shawn Singh <[email protected]> wrote:
> Nope, the matrices in the code are just basic rotations about x/y/z/ axes. > > ~Shawn > > > On Tue, May 15, 2012 at 7:57 AM, W. James MacLean > <[email protected]>wrote: > >> If it's computing theta/2, perhaps the trig formulas are for converting >> from a quaternion to a matrix? Does it look like the matrix in the >> quaternion section of this page? >> >> http://en.wikipedia.org/wiki/Rotation_operator_(vector_space) >> >> On Mon, May 14, 2012 at 10:30 PM, Shawn Singh <[email protected]>wrote: >> >>> >>> Hi all, >>> >>> I'm looking at TransformationMatrix::rotate3d(rx, ry, rz). This code >>> does something indirect, and I don't understand why. Instead of >>> initializing each rotation using sin(theta), cos(theta), the code computes >>> theta/2, and then uses trig identities to initialize the rotation matrix. >>> >>> I checked really quickly with fprintf, and it seems like we could >>> actually gain 1-2 bits of precision if we avoid doing this, and use >>> sin(theta) and cos(theta) directly. In the current code, more error seems >>> to accumulate due to sin^2 (theta / 2). Squaring that value instantly >>> increases the error inherent in the computation. I cannot think of any >>> valid reason that this code uses those trig identities instead of directly >>> using sin and cos. Does anyone else know why? Is this worth changing to >>> gain some precision? >>> >>> On a secondary note, its also fishy that we are freely mixing floats and >>> doubles in the rotation code. But, I don't think that is as significant >>> error accumulation as the sin^2. >>> >>> Thanks, >>> ~Shawn >>> >>> _______________________________________________ >>> webkit-dev mailing list >>> [email protected] >>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev >>> >>> >> >
_______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

