I am writing a program for python turtle and i want it to fill the entire screen. I am using turtle.screensize()
to try and do it but i don't know my screen resolution.
This is my code:
import turtle
tur = turtle.Turtle()
tur.pensize(2)
tur.speed(5)
tur.color("blue")
def triangle():
for i in range(3): # Triangle
tur.forward(100)
tur.left(120)
def square():
for i in range(4): # Square
tur.forward(100)
tur.left(90) # 90 * 4 = 360
def pentagon():
for i in range(5): # Pentagon
tur.forward(90)
tur.left(72) # 72 * 5 = 360
def hexagon():
for i in range(6): # Hexagon
tur.forward(80)
tur.left(60) # 60 * 6 = 360
def heptagon():
for i in range(7): # Heptagon
tur.forward(75)
tur.left(51.4285714286) # 51.4285714286 * 7 = 360
def octagon():
for i in range(8): # Octagon
tur.forward(70)
tur.left(45) # 45 * 8 = 360
def nonagon():
for i in range(9): # Nonagon
tur.forward(65)
tur.left(40) # 40 * 9 = 360
def decagon():
for i in range(10): # Decagon
tur.forward(60)
tur.left(36) # 36 * 10 = 360
def hendecagon():
for i in range(11): # Hendecagon
tur.forward(55)
tur.left(32.7272727273) # 32.7272727273 * 11 = 360
def duodecagon():
for i in range(12): # Duodecagon
tur.forward(50)
tur.left(30)
def icositetragon():
for i in range(24): # Icositetragon
tur.forward(25)
tur.left(15)
def main():
print("1 = Triangle \n" + "2 = Square \n" + "3 = Pentagon \n" + "4 = Hexagon \n" + "5 = Heptagon \n" + "6 = Octagon")
print("7 = Nonagon \n" + "8 = Decagon \n" + "9 = Hendecagon \n" + "10 = Duodecagon \n" + "11 = Icositetragon")
number = input("Choose a shape number: ")
if number == "1":
triangle()
elif number == "2":
square()
elif number == "3":
pentagon()
elif number == "4":
hexagon()
elif number == "5":
heptagon()
elif number == "6":
octagon()
elif number == "7":
nonagon()
elif number == "8":
decagon()
elif number == "9":
hendecagon()
elif number == "10":
duodecagon()
elif number == "11":
icositetragon()
else:
print("Not a number or number incorrect")
return
tur.penup()
tur.forward(200)
main()
turtle.screensize()
turtle.mainloop()
Rather than screensize()
, what you want is setup()
, which, along with pixel sizes, accepts floating point values indication what percentage of the screen you want. In your case, this would be setup(width=1.0, height=1.0)
. A simple example:
from turtle import Screen, Turtle
polygons = [
(3, "Triangle"),
(4, "Square"),
(5, "Pentagon"),
(6, "Hexagon"),
]
def polygon(sides):
for _ in range(sides): # Triangle
turtle.forward(100)
turtle.left(360 / sides)
def main():
for index, (_, name) in enumerate(polygons, start=1):
print(f"{index} = {name}")
number = int(input("Choose a shape number: ")) - 1
if 0 <= number < len(polygons):
polygon(polygons[number][0])
else:
print("Number incorrect")
return
turtle.penup()
turtle.forward(200)
screen = Screen()
screen.setup(width=1.0, height=1.0)
turtle = Turtle()
turtle.pensize(2)
turtle.color('blue')
main()
screen.exitonclick()
Under Mac OSX, this doesn't appear to include the screen space taken up by the dock. But "Automatically hide and show the Dock" in Preferences can take of this.