Skip to content

Instantly share code, notes, and snippets.

@dvtate
Created June 9, 2016 22:51
Show Gist options
  • Save dvtate/70220e5b436a301702a03325f85f5cc6 to your computer and use it in GitHub Desktop.
Save dvtate/70220e5b436a301702a03325f85f5cc6 to your computer and use it in GitHub Desktop.
I made this in my programming class in 2014. working example: https://trinket.io/python/9e22afd794
#turtle fun
#DV Tate Testa
from turtle import *;
def draw_reg_poly(t_navn, dist, side_num, color, x0, y0, num_dash=0):
'''draw regular polygon
'params: turtle name, side length, number of sides, color, x, y, number of dashes.
'returns: draws the described polygon
'''
num_dash = int(num_dash);
if num_dash>1:
angle = ((side_num-2.0)/side_num)*180;
angle = 180 - angle;
dash_len = int(dist/(num_dash*2));
t_navn.color(color);
t_navn.penup();
t_navn.goto(x0,y0);
t_navn.pendown();
for i in range(side_num):
t_navn.write(i);#
for d in range(num_dash):
t_navn.penup();
t_navn.forward(dash_len);
t_navn.pendown();
t_navn.forward(dash_len);
t_navn.left(angle);
else: #no dashes
if num_dash!=0:
t_navn.color("red");
t_navn.write("*invalid dash number");
t_navn.color(color);
angle = ((side_num-2.0)/side_num)*180;
angle = 180 - angle;
t_navn.color(color);
t_navn.penup();
t_navn.goto(x0,y0);
t_navn.pendown();
for i in range(side_num):
t_navn.write(i);#vertex number
t_navn.forward(dist);
t_navn.left(angle);
return;
def paint_canvas(window_object,background_color):
#change the window background color
window_object.bgcolor(background_color);
return;
def draw_rectangle(t_obj,x0, y0, x1, y1, color, pen_size):
'''draw a rect that connects two points
'params: turtle object, x1,y1,x2,y2,color,pen thickness
'returns: graphics
'''
t_obj.color(color);
t_obj.pensize(pen_size);
t_obj.penup();
t_obj.goto(x0,y0);#start at 1st point
t_obj.pendown();
t_obj.goto(x0,y1);#move to 2nd point
t_obj.goto(x1,y1);#move to 3rd point
t_obj.goto(x1,y0);#move to 4th point
t_obj.goto(x0,y0);#go back to start
return;
def draw_x(t_obj,x0, y0, x1, y1, color, pen_size):
'''draw an x between two points
'params: turtle object, x1,y1,x2,y2,color,pen thickness
'returns: graphics
'''
t_obj.color(color);
t_obj.pensize(pen_size);
t_obj.penup();
t_obj.goto(x0,y0);#start @1st point
t_obj.pendown();
t_obj.goto(x1,y1);#opposite corner
t_obj.penup();
t_obj.goto(x0,y1);#start @1st point
t_obj.pendown();
t_obj.goto(x1,y0);#opposite corner
return;
def create_masterpiece():
'''combines functions
'Params:
' None
'Returns:
' Graphics
'''
wn = Screen();
wn.bgcolor('lightgreen');
# when you click on the graphics window, the program stops and the window is cleared
wn.exitonclick() # this must be used to stop your program OR runaway program
# call the Turtle constructor method to construct/create a turtle object named t
t = Turtle();
t.pensize(2);# set the width of the pen
t.speed(200);# speed up the drawing
paint_canvas(wn, 'hotpink');
draw_rectangle(t, -200,-200,200,200, 'red',20);
#draw_rectangle(t, -100,-80,90,150,'green', 1);
draw_x(t, -200,-200,200,200,'green', 3);
draw_reg_poly(t, 20, 6, 'blue', 50, 5,3);
draw_reg_poly(t, 20, 6, 'gold', -100, -5);
draw_reg_poly(t, 25, 5, 'purple', 2, 50,4);
draw_reg_poly(t, 30, 3, 'brown', -10, -50,3);
return;
#------------MAIN:
create_masterpiece();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment