'In the turtle module, how to find the maximum values of coordinates?

import turtle as t
from random import randint, random
def draw_star(points, size, col, x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
    angle = 180 - (180 / points)
    t.color(col)
    t.begin_fill()
    for i in range(points):
        t.forward(size)
        t.right(angle)
    t.end_fill()
# Main code
while True:
    ranPts = randint(2, 5) * 2 + 1
    ranSize = randint(10, 50)
    ranCol = (random(), random(), random())
    ranX = randint(-350, 300)
    ranY = randint(-250, 250)
    draw_star(ranPts, ranSize, ranCol, ranX, ranY)

Question: How could I know the maximum values of coordinates of my screen? So I can have a better idea on how to set the values of ranX and ranY?

Thanks.



Solution 1:[1]

You could use t.setworldcoordinates(llx, lly, urx, ury) The parameters:

  • llx = x of lower left corner
  • lly = y of lower left corner
  • urx= x of upper right corner
  • ury = y of upper right corner

Solution 2:[2]

You can create a function and find the values of coordinates yourself by clicking on the screen like this:

# turtle library
import turtle
 
#This to make turtle object
tess=turtle.Turtle() 
 
# self defined function to print coordinate
def buttonclick(x,y):
    print("You clicked at this coordinate({0},{1})".format(x,y))
 
 #onscreen function to send coordinate
turtle.onscreenclick(buttonclick,1)
turtle.listen()  # listen to incoming connections
turtle.speed(10) # set the speed
turtle.done()    # hold the screen

This will print everytime you click on the screen and print the coordinates out.

Solution 3:[3]

The screensize() function returns the canvas width and the canvas height as a tuple. You can use this to find the max coordinates of the canvas.

screenSize = t.screensize() #returns (width, height)

# Main code
while True:
    ranPts = randint(2, 5) * 2 + 1
    ranSize = randint(10, 50)
    ranCol = (random(), random(), random())
    ranX = randint(50-screenSize[0], screenSize[0] - 100)
    ranY = randint(50-screenSize[1], screenSize[1] - 100)
    draw_star(ranPts, ranSize, ranCol, ranX, ranY)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Harjuuso
Solution 2 Sarim Sikander
Solution 3 Syllight