O'Reilly logo

Mastering Perl/Tk by Nancy Walsh, Stephen Lidie

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The Canvas Coordinate System

A Canvas widget uses a coordinate system to locate items within it, but the coordinate system isn’t Cartesian, as you might expect. It’s more like an upside-down coordinate system (much like the coordinate system described in Chapter 2).

Figure 9-2 shows a diagram that demonstrates the coordinate system a Canvas widget uses.

Canvas coordinate system

Figure 9-2. Canvas coordinate system

The x coordinates behave normally: the larger coordinates are to the right and the smaller ones are to the left. The y coordinates look like they have been drinking vodka: the larger y coordinates are on the bottom rather than on the top, because the (0, 0) point is in the upper-left corner. Although it is rare, you can use negative coordinates in a Canvas.

The coordinate system isn’t too hard to deal with once you understand it, but if you try to draw a building with a standard coordinate system in mind, your building will be upside down.

There are several ways to deal with this. First, adjust your way of thinking so you always think y coordinates are larger at the bottom (never mind all those years we all struggled through geometry classes). Or, you can be stubborn and think in normal coordinates, and have your program multiply all y coordinates by -1 before sending them to the Canvas functions.

Whichever way you decide to deal with it, be consistent and make sure you comment your code.

The x ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required