Thursday, August 7, 2008

Drawing Circles and Ellipses

All of the drawing programs I'm familiar with let you draw a circle or ellipse (oval) by clicking the mouse and dragging to set the two corners of a box containing the shape. This model has been around at least since the early 1980's, and has become more or less the standard. However, this is a pretty clumsy way to do things.

The problem with this is that the starting point, and the mouse pointer, are never actually on the shape you're drawing. If you draw a line, the mouse pointer defines the end points. If you draw a rectangle, the mouse defines the opposite corners. But with a circle or ellipse, the shape is somewhere inside an invisible rectangle that you stretch with the mouse, but the mouse never touches the shape.

I've always thought that a better way to do this is to put the circle or ellipse outside the invisible rectangle, so the mouse pointer is actually on the shape at all times. The proportions of the ellipse are still determined by this inner rectangle, but now you have more control over where the shape actually gets drawn.

To compare these two approaches, just try out

Note: You'll need to have Java enabled in your browser for this to work.

It may be hard to tell which is easier just from these isolated examples, without actually trying it in a drawing program. I may try to elaborate these examples later, but I hope these give the idea, and show the difference between the two methods.

Which do you prefer?


Son of Bill's Dad said...

Absolutely, I agree your method is superior, much preferable, and easier to use for precise placement. If only the programs were written that way.

Peter Davis said...

Thanks. I'm not sure I'm happy with how the circle drawing works (with the Shift key held down). I may experiment with another idea for that.