gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] Re:Matrix math (strk)


From: strk
Subject: Re: [Gnash-dev] Re:Matrix math (strk)
Date: Wed, 3 Sep 2008 13:10:54 +0200

On Tue, Sep 02, 2008 at 11:23:01PM -0700, Mark Voorhies wrote:

> I think that pushing the reflection into sx gives the expected behavior as 
> long as the sx != 0 (choosing sx rather than sy is arbitrary).
> 
> For the reflection case, atan2 returns the wrong sign (the logic for 
> assigning 
> quadrants assumes only rotation), so it is still necessary to do the sign 
> correction in get_rotation:
> 
> E.g.
> 
> double
> matrix::get_x_scale() const
> {
>     if(determinant() < 0)
>     {
>        // Capture reflection in x-scale
>        return -sqrt(((double)sx * sx + (double)shx * shx)) / 65536.0;
>     }
>     else
>     {
>        return sqrt(((double)sx * sx + (double)shx * shx)) / 65536.0;
>     }
> }
> 
> double
> matrix::get_y_scale() const
> {
>     return sqrt(((double)sy * sy + (double)shy * shy)) / 65536.0;
> }

Using sqrt here would make it impossible for Y scale to be negative.

--strk;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]