Random Rectangles with Python Turtle (with Solution)

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)))

Circle Matrix with Python Turtle (with Solution)

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

Rainbow Colored Tree with Python Turtle (with Solution)

In this python turtle project, you are going to draw a beautifully colored tree with recursion.

Related Projects:

Solution

import turtle
import colorsys

def draw_stick(x,y,length,pensize,color,angle):
    turtle.up()
    turtle.goto(x,y)
    turtle.seth(angle)
    turtle.pensize(pensize)
    turtle.down()
    turtle.color(color)
    turtle.fd(length)

def draw_tree(x,y,length,pensize,hue,angle,fat_angle,n):
    if n == 0:
        return
    (r,g,b) = colorsys.hsv_to_rgb(hue,1,1)
    draw_stick(x,y,length,pensize,(r,g,b),angle)
    tx = turtle.xcor()
    ty = turtle.ycor()
        
    draw_tree(tx,ty,length*0.7,pensize*0.7,hue-1/13,angle+fat_angle,fat_angle,n-1)
    draw_tree(tx,ty,length*0.7,pensize*0.7,hue-1/13,angle-fat_angle,fat_angle,n-1)
    
turtle.setup(800,800)
turtle.title("Rainbow Colored Tree - PythonTurtle.Academy")
turtle.speed(0)
turtle.hideturtle()
turtle.tracer(0)
turtle.bgcolor('black')

draw_tree(0,-300,200,10,12/13,90,25,12)
turtle.update()

Drawing Rainbow with Python Turtle (Solution Included)

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.
7 Color Rainbow
49 Color Rainbow

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

Related Projects: