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@yahoo.com Subject: [Newbies] Re: PolygonMorph intersection To: "beginners@lists.squeakfoundation.org" beginners@lists.squeakfoundation.org Message-ID: 437189.72874.qm@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
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@yahoo.com <mailto:peace_the_dreamer@yahoo.com>> Subject: [Newbies] Re: PolygonMorph intersection To: " beginners@lists.squeakfoundation.org <mailto:beginners@lists.squeakfoundation.org>" <beginners@lists.squeakfoundation.org <mailto:beginners@lists.squeakfoundation.org>> Message-ID: < 437189.72874.qm@web50310.mail.re2.yahoo.com <mailto:437189.72874.qm@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@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org