Bỏ qua để đến nội dung

Vẽ hoa văn và mẫu

Trong bài này, chúng ta sẽ học cách tạo các hoa văn và mẫu đẹp mắt bằng cách kết hợp vòng lặp, màu sắc và hình học.

import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# Vẽ 360 hình vuông
for i in range(360):
t.pencolor(colors[i % 6])
t.width(i / 100 + 1)
t.forward(i)
t.left(59)
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "yellow", "blue", "green", "orange", "purple"]
# Vẽ 36 hình tròn
for i in range(36):
t.pencolor(colors[i % 6])
t.circle(100)
t.left(10)
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "yellow", "blue", "green", "orange", "purple", "pink"]
# Vẽ spirograph
for i in range(200):
t.pencolor(colors[i % 7])
t.circle(100)
t.left(5)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("navy")
colors = ["red", "yellow", "blue", "orange", "green", "pink"]
# Vẽ nhiều ngôi sao
for i in range(36):
t.pencolor(colors[i % 6])
# Vẽ ngôi sao 5 cánh
for j in range(5):
t.forward(100)
t.right(144)
t.right(10)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
def hexagon(size):
"""Vẽ lục giác"""
for i in range(6):
t.forward(size)
t.left(60)
# Vẽ tổ ong
for i in range(6):
hexagon(100)
t.forward(100)
t.right(60)
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# Vẽ mandala
for i in range(18):
for color in colors:
t.color(color)
t.circle(100)
t.left(10)
t.left(20)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "purple", "blue", "green", "yellow", "orange"]
# Vẽ xoắn ốc
for i in range(400):
t.pencolor(colors[i % 6])
t.width(i / 100 + 1)
t.forward(i)
t.left(91)
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
t.pencolor("gold")
t.width(2)
# Vẽ xoắn ốc tròn
for i in range(100):
t.circle(i)
t.left(45)
turtle.done()
import turtle
def draw_tree(branch_length, t):
"""Vẽ cây fractal"""
if branch_length > 5:
t.forward(branch_length)
t.right(20)
draw_tree(branch_length - 15, t)
t.left(40)
draw_tree(branch_length - 15, t)
t.right(20)
t.backward(branch_length)
# Setup
screen = turtle.Screen()
screen.bgcolor("white")
t = turtle.Turtle()
t.speed(0)
t.left(90)
t.penup()
t.backward(100)
t.pendown()
t.color("brown")
# Vẽ cây
draw_tree(75, t)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(2)
t.width(5)
# Màu và vị trí các vòng
colors = ["blue", "black", "red", "yellow", "green"]
positions = [(-120, 0), (0, 0), (120, 0), (-60, -50), (60, -50)]
# Vẽ 5 vòng tròn
for i in range(5):
t.penup()
t.goto(positions[i][0], positions[i][1])
t.pendown()
t.color(colors[i])
t.circle(50)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("white")
colors = ["red", "blue", "green", "yellow", "purple", "orange"]
# Vẽ hoa văn hình thoi
for i in range(36):
t.color(colors[i % 6])
# Vẽ hình thoi
for j in range(2):
t.forward(100)
t.left(60)
t.forward(100)
t.left(120)
t.left(10)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("black")
colors = ["red", "magenta", "blue", "cyan", "green", "yellow"]
# Vẽ rosette
for i in range(36):
t.pencolor(colors[i % 6])
# Vẽ cánh hoa
t.circle(100, 180)
t.left(170)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
screen = turtle.Screen()
screen.bgcolor("white")
t.color("blue")
t.width(2)
# Vẽ mê cung đơn giản
for i in range(50):
t.forward(i * 10)
t.right(90)
t.hideturtle()
turtle.done()
import turtle
import random
screen = turtle.Screen()
screen.colormode(255)
screen.bgcolor("white")
t = turtle.Turtle()
t.speed(0)
t.width(3)
# Random walk
for i in range(500):
# Màu ngẫu nhiên
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
t.pencolor(r, g, b)
# Hướng ngẫu nhiên
directions = [0, 90, 180, 270]
t.setheading(random.choice(directions))
t.forward(30)
t.hideturtle()
turtle.done()
import turtle
def branch(length):
"""Vẽ một nhánh của bông tuyết"""
if length < 10:
return
t.forward(length)
t.right(45)
branch(length/2)
t.left(90)
branch(length/2)
t.right(45)
t.backward(length)
# Setup
screen = turtle.Screen()
screen.bgcolor("lightblue")
t = turtle.Turtle()
t.speed(0)
t.color("white")
t.width(2)
# Vẽ 8 nhánh
for i in range(8):
branch(60)
t.left(45)
t.hideturtle()
turtle.done()
import turtle
t = turtle.Turtle()
t.speed(0)
def draw_square(size, x, y, color):
"""Vẽ ô vuông tại vị trí cho trước"""
t.penup()
t.goto(x, y)
t.pendown()
t.color(color, color)
t.begin_fill()
for i in range(4):
t.forward(size)
t.left(90)
t.end_fill()
# Vẽ bàn cờ 8x8
size = 40
for row in range(8):
for col in range(8):
x = col * size
y = row * size
# Xen kẽ màu đen trắng
if (row + col) % 2 == 0:
color = "black"
else:
color = "white"
draw_square(size, x, y, color)
t.hideturtle()
turtle.done()

Tạo một hoa văn độc đáo của riêng bạn bằng cách kết hợp các kỹ thuật đã học

Vẽ một mặt trời với nhiều tia sáng màu sắc rực rỡ

Tạo hoa văn Celtic với các vòng tròn đan xen

Vẽ một thiên hà xoáy ốc với nhiều màu sắc

import turtle
import random
screen = turtle.Screen()
screen.bgcolor("black")
screen.colormode(255)
t = turtle.Turtle()
t.speed(0)
t.hideturtle()
# Vẽ galaxy
for i in range(500):
# Màu sao
color_intensity = random.randint(150, 255)
t.color(color_intensity, color_intensity, 255)
# Vị trí ngẫu nhiên theo xoáy
angle = i * 5
distance = i / 3
t.penup()
t.setheading(angle)
t.forward(distance)
t.dot(random.randint(1, 5))
turtle.done()
  1. Sử dụng màu tương phản: Màu sáng trên nền tối hoặc ngược lại
  2. Đối xứng: Tạo các mẫu đối xứng bằng cách lặp với góc đều
  3. Kết hợp nhiều hình: Ghép các hình cơ bản tạo phức tạp
  4. Thay đổi kích thước: Tăng/giảm kích thước tạo hiệu ứng động
  5. Random có chừng mực: Dùng random nhưng vẫn giữ quy luật

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

  • ✅ Tạo hoa văn xoáy ốc (spiral)
  • ✅ Vẽ spirograph và mandala
  • ✅ Tạo hoa văn fractal (cây, bông tuyết)
  • ✅ Vẽ các mẫu hình học phức tạp
  • ✅ Kết hợp màu sắc và vòng lặp
  • ✅ Sử dụng random tạo hoa văn độc đáo

Bài tiếp theo, chúng ta sẽ làm các dự án nâng cao thú vị hơn!