In this project, you are going to one hundred random rectangles filled with random colors. You will learn for loop, function, random library, and setting color with (r,g,b).
Video demo of this project can be found here:
Solution:
import turtle
import random
def draw_retangle(x,y,w,h,color):
turtle.up()
turtle.seth(0)
turtle.goto(x-w/2,y-h/2)
turtle.fillcolor(color)
turtle.down()
turtle.begin_fill()
for i in range(2):
turtle.fd(w)
turtle.left(90)
turtle.fd(h)
turtle.left(90)
turtle.end_fill()
turtle.setup(700,700)
turtle.title("Random Rectangles - PythonTurtle.Academy")
turtle.speed(0)
turtle.hideturtle()
n = 100
for i in range(n):
draw_retangle(random.randint(-300,300),random.randint(-300,300),
random.randint(5,100),random.randint(5,100),
(random.uniform(0,1),random.uniform(0,1),random.uniform(0,1)))
In this simple python turtle project, you are going to draw a 10×10 matrix of connected circles. You can either use nested loops or define a function that draws a line of circles and and call this function in a single loop.
Solution
import turtle
def draw_circle(x,y,r):
turtle.up()
turtle.seth(0)
turtle.goto(x,y-r)
turtle.down()
turtle.circle(r)
def draw_a_line_of_circles(x,y,r,n):
for i in range(n):
draw_circle(x,y,r)
x += 2*r
turtle.setup(900,900)
turtle.title("Circle Matrix - PythonTurtle.Academy")
turtle.speed(0)
turtle.hideturtle()
y = 300
radius=30
for i in range(10):
draw_a_line_of_circles(-300,y,radius,10)
y -= radius*2
In this python turtle project, you are going to draw a 7-color rainbow and a 49-color rainbow. You need to know for loop, drawing circle, and converting HSV (Hue-Saturation-Value) colorspace to RGB colorspace using the colorsys library.
Code:
import turtle
import colorsys
def draw_one_color_arc(x,y,r,pensize,color):
turtle.up()
turtle.goto(x+r,y)
turtle.down()
turtle.seth(90)
turtle.pensize(pensize)
turtle.pencolor(color)
turtle.circle(r,180)
turtle.speed(0)
turtle.hideturtle()
turtle.bgcolor('light blue')
turtle.title('49-Color Rainbow')
turtle.setup(700,700)
num_colors = 49
radius = 300
penwidth = 20*7/num_colors
hue = 0
for i in range(num_colors):
(r,g,b) = colorsys.hsv_to_rgb(hue,1,1)
draw_one_color_arc(0,-100,radius,penwidth,(r,g,b))
radius -= (penwidth-1) #overlapping a little removes the gaps
hue += 0.9/num_colors