[OpenJDK 2D-Dev] CubicCurve2D.solveCubic and containment/intersection bugs.

Denis Lila dlila at redhat.com
Mon Jan 24 23:41:24 UTC 2011


Hi Jim.

> This sounds good.
> 
> Along the lines of what you are proposing, it may help to use words
> like
> "infinitely thin" and then come up with some intuitive word (or maybe
> a
> pair of words?) that we can use both in the case of talking about how
> a
> Stroke turns a path into a stroked shape and also how the filling and
> containment methods turn it into an arbiter of points inside or
> outside
> the shape. It couldn't hurt to say that every shape divides the plane
> into 2 sets of points, one inside and the other outside, or something
> like that.

Ok. I'll write something up and send you a webrev.

> Perhaps the problem is less with the word "boundary" than it
> is with confusing our use of the word inside to describe the
> concept of filling and containment with the topological concept
> that a set has an interior in addition to (and mostly separate from)
> its boundary?

That was exactly the problem. We classify every point as either inside
or outside, and I'm used to the interior, exterior, and boundary being
disjoint.

Regards,
Denis.

----- Original Message -----
> Hi Denis,
> 
> On 1/12/2011 8:35 AM, Denis Lila wrote:
> >> There is another bug out there where I've indicated the need to
> >> beef
> >> up our documentation of the intersection methods (see 7003516).
> >
> > I like the ideas in the evaluation, especially about the links to
> > the
> > "Definition of insideness" in the Shape docs. What confused me
> > in the documentation, even after I had read the "Definition of
> > insideness", was that the wording is not very consistent. For
> > example
> > contains(Point) says "...inside the boundary of the Shape." The
> > "Definition of insideness" says "lie *inside a Shape* if and only
> > if"
> > So we have "inside a Shape" and "inside the boundary of the Shape".
> > This creates the impression that they are referring to two different
> > things. That's why I was confused about whether "inside the
> > boundary"
> > included the boundary or not.
> >
> > What made it even more confusing was just the usage of the word
> > "boundary"
> > itself, especially when combined with the usage of "interior" in the
> > intersects() docs. I'm used to "boundary" and "interior" being
> > defined
> > like so: http://en.wikipedia.org/wiki/Boundary_%28topology%29,
> > http://en.wikipedia.org/wiki/Interior_%28topology%29
> > but in Shape we use a different definition which classifies every
> > point in the plane as either inside or outside the shape, so in
> > some sense, the boundary doesn't even exist in our case. So I
> > propose
> > that we remove every use of the word "boundary", and replace every
> > use of "interior" with "inside"+ a link to the "Definition of
> > insideness"
> > in awt.Shape. That will make it perfectly clear what we mean by
> > "inside"
> > and people who have studied a bit of topology won't be confused ;-)
> 

> 
> Note that the definition of insideness does allow that there are
> points
> that are on the boundary - in fact most of its words are how to
> disambiguate whether those points are inside or outside.  In our case we
> accept half(ish) of the boundary into "inside" and half(ish) into
> "outside". In topology there are 3 states - interior, boundary, and
> exterior...
> 
> ...jim



More information about the 2d-dev mailing list