All Locations in pyDraw are wrapped with this class, however some methods and constructors will automatically convert tuples to Locations automatically.


Locations can be initialized with two coordinates, a tuple, another location, or by specifying only one coordinate (such as x or y), defaulting the other coordinate's value to zero.

location = Location(0, 0)  # Two arguments
location = Location((200, 100))  # A single tuple
location = Location(another_location)  # Copy constructor

location = Location(x=100)  # Create a location at (100, 0)


There is a variety of ways to retrieve the values from a Location instance:

location.x()  # Get the x-coordinate
location.y()  # Get the y-coordinate

Locations are also readable as tuples:

location[0]  # Get the x-coordinate
location[1]  # Get the y-coordinate

Changing Locations

The methods above can also be used to modify coordinates:

location.x(new_x)  # Set a new x-coordinate value
location.y(new_y)  # Set a new y-coordinate value

You can also call the handy .move() and .moveto() methods:

location.move(dx, dy)  # Move the location by passed values
location.move((dx, dy))  # You can also pass in tuples!
location.move(location)  # Not sure why you'd need this :P
location.move(dx=100)  # Only move the x-coordinate by +100

location.moveto(x, y)  # Move to a new position
location.moveto((x, y))  # Pass in tuple
location.moveto(location)  # Move to the same position as another Location instance
location.moveto(y=100)  # Change the y-coordinate to 100


It is possible to convert to turtle-based coordinates by calling:

turtle_location = screen.create_location(location)

Or to convert to Tkinter:

tkinter_location = screen.canvas_location(location)

Last updated