This passes regtests and adds a regtest to show it in action. As I know ...
13 years, 8 months ago
(2011-07-27 08:37:06 UTC)
#1
This passes regtests and adds a regtest to show it in action.
As I know nothing about rounding error in C++, I'd like others who are more
familiar with this to comment on the way I handle it.
Cheers,
MS
On Jul 27, 2011, at 10:59 PM, hanwenn@gmail.com wrote: > this just moves the rounding ...
13 years, 8 months ago
(2011-07-27 21:09:35 UTC)
#5
On Jul 27, 2011, at 10:59 PM, hanwenn@gmail.com wrote:
> this just moves the rounding error an epsilon away.
>
> can you post an image of the problem you're solvnig ?
>
> http://codereview.appspot.com/4820048/
With my new patch, the tuplet collision right at the end of the slur is avoided
(lily finds a Bezier intersection). Without the patch, there is a
slur/tuplet-number collision.
Cheers,
MS
That's weird - the overlap looks way more than 1e-10. Are you sure it is ...
13 years, 8 months ago
(2011-07-27 21:42:29 UTC)
#6
That's weird - the overlap looks way more than 1e-10. Are you sure it is
taking the correct extent of the number into account?
(I am surprised that we do tuplet number/slur collisions at all.)
2011/7/27 mike@apollinemike.com <mike@apollinemike.com>
> On Jul 27, 2011, at 10:59 PM, hanwenn@gmail.com wrote:
>
> this just moves the rounding error an epsilon away.
>
> can you post an image of the problem you're solvnig ?
>
> http://codereview.appspot.com/4820048/
>
>
> With my new patch, the tuplet collision right at the end of the slur is
> avoided (lily finds a Bezier intersection). Without the patch, there is a
> slur/tuplet-number collision.
>
>
> Cheers,
> MS
>
>
--
Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen
Mike, this could make sense *if* it is normal to ask where the Bezier curve ...
13 years, 6 months ago
(2011-10-01 06:02:54 UTC)
#7
Mike, this could make sense *if* it is normal to ask where the Bezier curve
touches the left or right side of its bounding box.
I considered doing exactly this for the rounding problem in Bezier::minmax() but
I chose instead to put the corner-case handling in the caller.
Your proposed reg-test causes Slur_configuration::score_extra_encompass() to
calling get_other_coordinate() to find the height of the slur at the right end
of the slur.
Do you have time to look into why score_extra_encompass() is looking at
precisely the right-hand end of the slur? I would have thought the
collision-avoidance code should be looking at the left bounding box corners of
the tuplet number, which are inside the ends of the slur, or something like
that.
On 2011/10/01 06:02:54, Keith wrote: > Mike, this could make sense *if* it is normal ...
13 years, 1 month ago
(2012-03-12 23:13:39 UTC)
#8
On 2011/10/01 06:02:54, Keith wrote:
> Mike, this could make sense *if* it is normal to ask where the Bezier curve
> touches the left or right side of its bounding box.
A Bezier curve stays within the convex hull formed by the end points and the
control points. If the x (or y) coordinates of the control points are within
the interval of the end points, the end points determine the x (or y) coordinate
of the bounding box. No need to calculate anything else in that case.
Issue 4820048: Adds epsilon to Bezier range calculations.
Created 13 years, 8 months ago by MikeSol
Modified 13 years, 1 month ago
Reviewers: pkx166h, hanwenn, mike_apollinemike.com, Keith, dak
Base URL:
Comments: 0