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)