Re: Overlap removal

[email protected]
Newsgroups gmane.comp.fonts.fontforge.devel
Message-ID <[email protected]>
On Sun, 29 Jun 2014, Kristof Bastiaensen wrote:
> "Locating all the intersections between two Bezier curves is a difficult
> general problem, because of the variety of degenerate cases."
>
> This is simply not true, there aren't a lot of degenerate cases to handle.

I don't think locating the intersections between two Bezier segments, or
even between one segment and itself, is the hard part of the
overlap-removal problem.  It doesn't seem to be where FontForge's existing
code has trouble, and there are well-known standard techniques.  The hard
part seems to be the bookkeeping of which segments should and shouldn't be
included in the output, when segments should be split, and so on, in order
to produce topologically valid output and not loop infinitely.  This is
also easy in principle, but the existing code does not do it correctly.

While we're talking about this kind of thing, "add extrema" could use a
look too... it is a file format requirement, and again dead easy in
principle, but due to numeric precision issues (especially after rounding
to integer coordinates) it's very difficult to generate output that *both*
has integer coordinates *and* points at all extrema; and some earlier
versions were capable of going into infinite loops during "add extrema"
(again because of numeric precision: after finding an extremum and
splitting curves to add it, the new curves would have extrema elsewhere)
although I haven't seen an infinite loop there recently.
-- 
Matthew Skala
[email protected]                 People before principles.
http://ansuz.sooke.bc.ca/

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.