Ah, I see, so Rectangle is in the context of display geometry not Cartesian coordinate (I don't know if I'm using the right words here, but I hope you get what I mean). You're right, the package is 'Graphics-Shapes'. For some reason, I thought it said 'Geometry'
I'm building something for layout geometry and these would be the wrong classes to use then. Question #2 would be a moot point. Thanks for the answer. You've saved me from going to the wrong path. -- Andreas Sunardi On Fri, May 19, 2017 at 9:53 AM, Ben Coman <b...@openinworld.com> wrote: > > > On Sat, May 20, 2017 at 12:23 AM, Andreas Sunardi <a.suna...@gmail.com> > wrote: > >> Pharo 5.0 >> >> It seems like a bug to me, but perhaps I misunderstand something. >> >> 1) Comment in Rectangle class >> origin:corner: method shows 'origin' >> should be top left and 'corner' should be bottom right. This method calls >> Rectangle >> setPoint:point:. But this method calculates 'origin' to be >> bottom left corner and 'corner' to be top right. Now all the edge and >> corner methods are wrong. >> >> r := Rectangle origin: 0@0 corner: 10@10. >> r topLeft. => (0@0) "should be 0@10" >> r bottomRight. => (10@10) "should be 10@0" >> r top. => 0 "should be 10" >> r bottom. => 10 " should be 0" >> > > Would this depend on where you consider 0@0 to be on the screen? > (em := EllipseMorph new) openInWorld. > em bounds "==> (0@0) corner: (50@40)" > > > >> 2) Why Polygon >> bounds (which is PathShape >> bounds) returns a >> rectangle with a corner 1 point larger than the actual boundary? >> >> p1 := Polygon vertices: {0@0 . 0@10 . 10@10 . 10@0}. >> p1 bounds. => (0@0) corner: (11@11). "should be 0@0 and 10@10" >> >> This seems to be a fix to Rectangle >> containsPoint: strange behavior. >> By strange behavior, I mean: >> >> r := Rectangle point: 0@0 point: 10@10. >> r containsPoint: 0@0. => true >> r containsPoint: 10@10. => false "should be true" >> { r topLeft . r topRight . r bottomLeft . r bottomRight } allSatisfy [ >> :corner | r containsPoint: corner ]. => false "should be true" >> > > > I want to fix this in my image, but Rectangle is used all over the place >> and I'm worry I'll break a lot of things. I wonder if I just misunderstood >> how these are supposed to be used. Can anybody help me understand if this >> is intentional or a bug? >> > > Sorry, I don't know about this. > cheers -ben >