>> I just attempted to draw a rectangle with dimensions 3@3 corner: 9@3.

>> Nothing gets drawn. The reason that nothing is drawn is that the width of

>> the rectangle is 0. This makes sense for real numbers but for a pixelated

>> screen or other display medium the dimensions of the rectangle

>> should be 1 x 7 not 0 x 6!?. This is 7 pixels needed to draw, not 0.

>>

>> The same issues occur for the height of the rectangles.

>>

>> I would think that the way things work would cause all kinds of problems

>> but since Rectangles are pretty basic, either I am wrong,

>> or every bit of Squeak code using rectangles has adjusted accordingly.

>>

>> Please clarify.

>>

> The coordinates refer to the imaginary lines between pixels. Thus, if you

> draw a rectangle from x=4 to x=5 its width is 1. This is so that if you

> draw multiple rectangles, they do not overlap (imagine drawing from 5 to 12

> and from 12 to 19).

But I would expect these rectangles to overlap just like I would expect the

intervals (3 to: 5) and (5 to: 7) to overlap; and they do (the intervals).

But of course we are doing computer graphics here, not mathematics.

In the next couple of days I will write code to draw a line segment and see

what happens. My guess is that if I draw a line from 3 @ 3 to 3 @ 5

only two pixels will be changed (analogous to how Rectangle works)

and not three (my intuition prior to this conversation).

> How do Java and other languages handle this?

>

Same. There's a nice illustration on this page:

http://math.hws.edu/~bridgeman/courses/124/f13/doc/paint/paint.htmlRegardless of my protestations on the right way to do this I must obviously

conform to convention.

Thanks for the clarification.

Ralph Boland

_______________________________________________

Beginners mailing list

[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners