# [Newbies] Re: PolygonMorph intersection

nicolas cellier ncellier at ifrance.com
Thu May 3 20:46:12 UTC 2007

```Sounds good.
Depends how you define better. Faster code or shorter code?
Maybe also add an optimistic rule first to fast up the false case:

(polygonB bounds containsRect: polygonA bounds) ifFalse: [^false].

Of course, we can build degenerated examples which are hard to decide.
To handle these, you also have to write better code.

For example, beware of the case when a segment of A crosses a vertex of
B. If inexact arithmetic is used, you can miss an intersection.

Same apply for the second rule: case when a vertex of A lie on a segment
of B.

Take square A rotated by 45° and magnify by a factor (2 sqrt) to make
sqaure B. A will fit into B, with each vertex of A lying on a segment of B.

We can build more tricky cases where some edge of A and B are
super-imposed, in part or whole...

Nicolas

S Hangal a écrit :
>
> Thanks, Jerome - have filed the issue in Mantis.
>
> I'm looking for the easiest way to figure out if polygon A is contained
> inside polygon B.
>
> One way to do this is by checking if polygon A intersects any segments of B
> and any one of A's vertices lies inside B.
> is there a better way ?
>
> Thanks,
>
> -sgh
>
>
>
>     Date: Wed, 2 May 2007 21:48:23 -0700 (PDT)
>     From: Jerome Peace <peace_the_dreamer at yahoo.com
>     <mailto:peace_the_dreamer at yahoo.com>>
>     Subject: [Newbies] Re: PolygonMorph intersection
>     To: " beginners at lists.squeakfoundation.org
>     <mailto:beginners at lists.squeakfoundation.org>"
>             <beginners at lists.squeakfoundation.org
>     <mailto:beginners at lists.squeakfoundation.org>>
>     Message-ID: < 437189.72874.qm at web50310.mail.re2.yahoo.com
>     <mailto:437189.72874.qm at web50310.mail.re2.yahoo.com>>
>     Content-Type: text/plain; charset=iso-8859-1
>
>     PolygonMorph intersection
>
>
>     Hi Sudheendra Hangal,
>
>     You have actually found a very good bug.
>
>     In investigating I found that the method for Polygon
>     did not exist in 3.8.
>
>     The author of the version in 3.9 is
>
>     nk 4/27/2003 16:15 PolygonMorph intersects: {geometry}
>
>     nk is Ned Konz who created the connector package.
>
>     In building the 3.9 release the release team added
>     pieces of the the Connectors package.
>     And while they did as best they could they missed a
>     piece.
>
>     The PolygonMorph>>intersects: methods calls  super
>     intersects: . None of the classes above PolygonMorph
>     defines the intersects: method. Thus the error
>     message.
>
>     Simply finding the bug make you a winner in what I
>     call the Game of Mantis.
>
>     see:
>     http://wiki.squeak.org/squeak/5915
>     Game of Mantis
>
>     The best place for this info would be to start a
>     Mantis report.
>     (You can get a mantis acct freely and easily).
>
>     A good place to start is:
>
>     http://bugs.squeak.org/my_view_page.php
>
>     Mantis provides a patient persistent way to focus on
>     an issue.
>     I use it to accumulate data on a problem until a
>     solution can be found.
>     It provides a place to:
>
>     *       alert the community to a problem;
>     *       accumulate facts and clues from the analysis;
>     *       publish preposed solutions and get feedback;
>     *       get solutions harvested and included into the main
>     stream.
>
>     The above is from:
>     http://wiki.squeak.org/squeak/5912
>     Mantis FAQ and Tips
>
>     Again thanks for your sharp eyes and easy to follow
>     recipe for the bug.
>
>     Yours in curiosity and service, --Jerome Peace
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners

```