Python Turtle
Vẽ các hình cơ bản

Vẽ các hình cơ bản với Turtle

Trong bài này, chúng ta sẽ học cách vẽ các hình cơ bản như tam giác, hình vuông, ngũ giác, lục giác và các đa giác khác.

1. Công thức vẽ đa giác đều

Để vẽ một đa giác đều có n cạnh:

  • Góc quay = 360 / n
  • Số lần lặp = n
# Công thức chung
for i in range(n):
    t.forward(canh)
    t.left(360 / n)

2. Vẽ tam giác đều

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Tam giác đều có 3 cạnh
# Góc quay = 360 / 3 = 120°
for i in range(3):
    t.forward(100)
    t.left(120)
 
turtle.done()

3. Vẽ hình vuông

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Hình vuông có 4 cạnh
# Góc quay = 360 / 4 = 90°
for i in range(4):
    t.forward(100)
    t.left(90)
 
turtle.done()

4. Vẽ ngũ giác đều

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Ngũ giác có 5 cạnh
# Góc quay = 360 / 5 = 72°
for i in range(5):
    t.forward(100)
    t.left(72)
 
turtle.done()

5. Vẽ lục giác đều

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Lục giác có 6 cạnh
# Góc quay = 360 / 6 = 60°
for i in range(6):
    t.forward(100)
    t.left(60)
 
turtle.done()

6. Hàm vẽ đa giác tổng quát

import turtle
 
def ve_da_giac(sides, length):
    """
    Vẽ đa giác đều
    sides: Số cạnh
    length: Độ dài cạnh
    """
    angle = 360 / sides
    for i in range(sides):
        t.forward(length)
        t.left(angle)
 
# Tạo turtle
t = turtle.Turtle()
t.speed(3)
 
# Vẽ các đa giác khác nhau
ve_da_giac(3, 100)   # Tam giác
t.penup()
t.goto(150, 0)
t.pendown()
 
ve_da_giac(5, 80)    # Ngũ giác
t.penup()
t.goto(-150, 0)
t.pendown()
 
ve_da_giac(8, 60)    # Bát giác
 
turtle.done()

7. Vẽ hình ngôi sao 5 cánh

import turtle
 
t = turtle.Turtle()
t.speed(2)
t.color("gold")
 
# Vẽ ngôi sao 5 cánh
# Góc nhọn = 144°
for i in range(5):
    t.forward(100)
    t.right(144)
 
turtle.done()

Giải thích: Để vẽ ngôi sao 5 cánh, ta quay phải 144° (= 360° / 5 * 2)

8. Vẽ hình ngôi sao 6 cánh

import turtle
 
t = turtle.Turtle()
t.speed(2)
t.color("blue")
 
# Vẽ 2 tam giác chồng lên nhau
# Tam giác 1
for i in range(3):
    t.forward(100)
    t.left(120)
 
# Quay 180° để vẽ tam giác ngược
t.right(180)
 
# Tam giác 2
for i in range(3):
    t.forward(100)
    t.left(120)
 
turtle.done()

9. Vẽ hình chữ nhật

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Chiều dài và chiều rộng
width = 150
height = 80
 
# Vẽ hình chữ nhật
for i in range(2):
    t.forward(width)
    t.left(90)
    t.forward(height)
    t.left(90)
 
turtle.done()

10. Vẽ hình bình hành

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Vẽ hình bình hành
for i in range(2):
    t.forward(100)
    t.left(60)   # Góc nghiêng
    t.forward(100)
    t.left(120)  # 180 - 60
 
turtle.done()

11. Vẽ hình thang

import turtle
 
t = turtle.Turtle()
t.speed(2)
 
# Vẽ hình thang
t.forward(150)   # Đáy lớn
t.left(60)
t.forward(80)    # Cạnh bên
t.left(60)
t.forward(100)   # Đáy nhỏ
t.left(60)
t.forward(80)    # Cạnh bên còn lại
 
turtle.done()

12. Vẽ nhiều hình xoay vòng

import turtle
 
t = turtle.Turtle()
t.speed(0)
 
# Vẽ 36 hình vuông xoay quanh tâm
for i in range(36):
    # Vẽ hình vuông
    for j in range(4):
        t.forward(100)
        t.left(90)
 
    # Quay 10° để vẽ hình tiếp theo
    t.left(10)
 
turtle.done()

Ví dụ tổng hợp: Vẽ nhiều hình cùng lúc

import turtle
 
def ve_hinh(sides, size, x, y, color):
    """Vẽ một đa giác tại vị trí cho trước"""
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color(color)
 
    angle = 360 / sides
    for i in range(sides):
        t.forward(size)
        t.left(angle)
 
# Khởi tạo
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("lightyellow")
 
# Vẽ nhiều hình
ve_hinh(3, 80, -200, 100, "red")      # Tam giác
ve_hinh(4, 80, 0, 100, "blue")        # Hình vuông
ve_hinh(5, 80, 200, 100, "green")     # Ngũ giác
ve_hinh(6, 60, -200, -100, "purple")  # Lục giác
ve_hinh(8, 50, 0, -100, "orange")     # Bát giác
ve_hinh(10, 40, 200, -100, "pink")    # Thập giác
 
t.hideturtle()
turtle.done()

Bài tập thực hành

Bài 1: Vẽ đa giác tăng dần

Vẽ các đa giác từ tam giác đến thập giác, xếp cạnh nhau

Bài 2: Vẽ kim tự tháp

Vẽ một kim tự tháp bằng cách chồng các hình vuông giảm dần

Bài 3: Vẽ hoa văn

Vẽ 12 hình vuông xoay quanh tâm (mỗi lần quay 30°)

Bài 4: Vẽ tổ ong

Vẽ nhiều lục giác ghép lại tạo thành tổ ong

Gợi ý Bài 3:

import turtle
 
t = turtle.Turtle()
t.speed(0)
t.color("blue")
 
# Vẽ 12 hình vuông
for i in range(12):
    # Vẽ hình vuông
    for j in range(4):
        t.forward(100)
        t.left(90)
 
    # Quay 30°
    t.left(30)
 
turtle.done()

Bảng công thức góc quay

HìnhSố cạnhGóc quay
Tam giác đều3120°
Hình vuông490°
Ngũ giác572°
Lục giác660°
Bát giác845°
Thập giác1036°
Mười hai giác1230°

Công thức: Góc quay = 360° / số cạnh

Tổng kết

Trong bài này, bạn đã học:

  • ✅ Công thức vẽ đa giác đều: góc quay = 360 / n
  • ✅ Vẽ các hình cơ bản: tam giác, hình vuông, ngũ giác, lục giác
  • ✅ Vẽ ngôi sao 5 cánh và 6 cánh
  • ✅ Vẽ hình chữ nhật, hình bình hành, hình thang
  • ✅ Tạo hoa văn bằng cách xoay hình
  • ✅ Viết hàm vẽ đa giác tổng quát

Bài tiếp theo, chúng ta sẽ học về màu sắc và tô màu!


Lập trình Python - Bumbii Academy