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.
1. Hoa văn hình vuông xoáy
Phần tiêu đề “1. Hoa văn hình vuông xoáy”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ôngfor i in range(360): t.pencolor(colors[i % 6]) t.width(i / 100 + 1) t.forward(i) t.left(59)
turtle.done()2. Hoa văn hình tròn
Phần tiêu đề “2. Hoa văn hình tròn”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ònfor i in range(36): t.pencolor(colors[i % 6]) t.circle(100) t.left(10)
turtle.done()3. Spirograph (Hoa văn hình học)
Phần tiêu đề “3. Spirograph (Hoa văn hình học)”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("black")
colors = ["red", "yellow", "blue", "green", "orange", "purple", "pink"]
# Vẽ spirographfor i in range(200): t.pencolor(colors[i % 7]) t.circle(100) t.left(5)
t.hideturtle()turtle.done()4. Hoa văn ngôi sao
Phần tiêu đề “4. Hoa văn ngôi sao”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 saofor 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()5. Hoa văn lục giác (Honeycomb)
Phần tiêu đề “5. Hoa văn lục giác (Honeycomb)”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ổ ongfor i in range(6): hexagon(100) t.forward(100) t.right(60)
turtle.done()6. Hoa văn Mandala
Phần tiêu đề “6. Hoa văn Mandala”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("black")
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# Vẽ mandalafor i in range(18): for color in colors: t.color(color) t.circle(100) t.left(10) t.left(20)
t.hideturtle()turtle.done()7. Spiral (Xoắn ốc)
Phần tiêu đề “7. Spiral (Xoắn ốc)”Xoắn ốc vuông
Phần tiêu đề “Xoắn ốc vuông”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("black")
colors = ["red", "purple", "blue", "green", "yellow", "orange"]
# Vẽ xoắn ốcfor i in range(400): t.pencolor(colors[i % 6]) t.width(i / 100 + 1) t.forward(i) t.left(91)
turtle.done()Xoắn ốc tròn
Phần tiêu đề “Xoắn ốc tròn”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ònfor i in range(100): t.circle(i) t.left(45)
turtle.done()8. Hoa văn Fractal - Cây
Phần tiêu đề “8. Hoa văn Fractal - Cây”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)
# Setupscreen = 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âydraw_tree(75, t)
t.hideturtle()turtle.done()9. Hoa văn Olympic
Phần tiêu đề “9. Hoa văn Olympic”import turtle
t = turtle.Turtle()t.speed(2)t.width(5)
# Màu và vị trí các vòngcolors = ["blue", "black", "red", "yellow", "green"]positions = [(-120, 0), (0, 0), (120, 0), (-60, -50), (60, -50)]
# Vẽ 5 vòng trònfor 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()10. Hoa văn hình thoi
Phần tiêu đề “10. Hoa văn hình thoi”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 thoifor 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()11. Hoa văn Rosette
Phần tiêu đề “11. Hoa văn Rosette”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("black")
colors = ["red", "magenta", "blue", "cyan", "green", "yellow"]
# Vẽ rosettefor i in range(36): t.pencolor(colors[i % 6])
# Vẽ cánh hoa t.circle(100, 180) t.left(170)
t.hideturtle()turtle.done()12. Vẽ mê cung
Phần tiêu đề “12. Vẽ mê cung”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ảnfor i in range(50): t.forward(i * 10) t.right(90)
t.hideturtle()turtle.done()13. Hoa văn Random Walk
Phần tiêu đề “13. Hoa văn Random Walk”import turtleimport random
screen = turtle.Screen()screen.colormode(255)screen.bgcolor("white")
t = turtle.Turtle()t.speed(0)t.width(3)
# Random walkfor 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()14. Vẽ bông tuyết (Snowflake)
Phần tiêu đề “14. Vẽ bông tuyết (Snowflake)”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)
# Setupscreen = turtle.Screen()screen.bgcolor("lightblue")t = turtle.Turtle()t.speed(0)t.color("white")t.width(2)
# Vẽ 8 nhánhfor i in range(8): branch(60) t.left(45)
t.hideturtle()turtle.done()15. Hoa văn Checkerboard (Bàn cờ)
Phần tiêu đề “15. Hoa văn Checkerboard (Bàn cờ)”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ờ 8x8size = 40for 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()Bài tập thực hành
Phần tiêu đề “Bài tập thực hành”Bài 1: Vẽ hoa văn riêng
Phần tiêu đề “Bài 1: Vẽ hoa văn riêng”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
Bài 2: Vẽ mặt trời Aztec
Phần tiêu đề “Bài 2: Vẽ mặt trời Aztec”Vẽ một mặt trời với nhiều tia sáng màu sắc rực rỡ
Bài 3: Vẽ hoa văn Celtic
Phần tiêu đề “Bài 3: Vẽ hoa văn Celtic”Tạo hoa văn Celtic với các vòng tròn đan xen
Bài 4: Vẽ galaxy
Phần tiêu đề “Bài 4: Vẽ galaxy”Vẽ một thiên hà xoáy ốc với nhiều màu sắc
Gợi ý Bài 4:
Phần tiêu đề “Gợi ý Bài 4:”import turtleimport random
screen = turtle.Screen()screen.bgcolor("black")screen.colormode(255)
t = turtle.Turtle()t.speed(0)t.hideturtle()
# Vẽ galaxyfor 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()Tips tạo hoa văn đẹp
Phần tiêu đề “Tips tạo hoa văn đẹp”- 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
- Đối xứng: Tạo các mẫu đối xứng bằng cách lặp với góc đều
- Kết hợp nhiều hình: Ghép các hình cơ bản tạo phức tạp
- Thay đổi kích thước: Tăng/giảm kích thước tạo hiệu ứng động
- Random có chừng mực: Dùng random nhưng vẫn giữ quy luật
Tổng kết
Phần tiêu đề “Tổng kế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!