BTW, I wonder, why rotate layer produces different values for "origin"
and "focus point", if focus point is exactly = 0.0?
K

2013/7/29 Konstantin Dmitriev <[email protected]>:
> 2013/7/29 Carlos López González <[email protected]>:
>> Hi!
>> I've been researching a bit about this commit and have some conclusions:
>>
>> 1) It only happens when there is a Rotate layer above (possibly you already
>> know). It doesn't happen with Zoom, Stretch or Translate above.
>> 2) In 0.64.0 it doesn't happen.
>> 3) Executing the code step by step, the problems seems to be that the
>> transformed position of the handle origin is not the same than the
>> transformed position of the focus. The difference is about in the 7th digit,
>> so it looks like some sort of rounding error. This difference causes that
>> the find_duck member doesn't find two ducks at the "same" place and
>> sometimes it finds the focus and other the origin.
>> 4) I've found that in this commit, there is a change of the way the
>> transformed point is calculated. This commit was included to allow reverse
>> transformation of the width ducks but I really don't understand the reason
>> of this change.
>> https://github.com/synfig/synfig/commit/1efad88f9d2a8855df740e014f2cd00ce04502b4
>>
>> So, for this bug I think that it can be solved by changing the behavior of
>> find_duck member by comparing the two points difference against a very small
>> (i.e. 0.0000001) number instead of compare against 0.0. But that won't fix
>> the root cause of the problem.
>>
>> So my idea is this:
>> First give a try to fix the root cause of the bug by doing:
>> 1) A revert of the commit from the point 4) above on the part of the
>> get_trans_point_origin member.
>> 2) If this fails, try a git bisect to find the commit that is causing the
>> problem.
>> 3) It all that fails and takes so long to fix, elaborate the change of the
>> find_duck member I mentioned as a workaround.
>>
>> Opinions?
>
> Looks good. In any case, comparing against the 0.0000001 is not the
> worst workaround. At the end, if difference of two ducks is less than
> 0.0000001, then from user point of view they are at the same place
> (because I hardly can imagine pointing device giving the precision
> close to  0.0000001 when clicking on the screen). ^__^
> K.
>
>
>
> --
> http://morevnaproject.org/



-- 
http://morevnaproject.org/

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to