Màu sắc và tô màu
Trong bài này, chúng ta sẽ học cách sử dụng màu sắc và tô màu cho các hình vẽ.
1. Màu nền (Background Color)
Phần tiêu đề “1. Màu nền (Background Color)”import turtle
screen = turtle.Screen()screen.bgcolor("lightblue") # Đặt màu nền
t = turtle.Turtle()t.forward(100)
turtle.done()2. Màu bút (Pen Color)
Phần tiêu đề “2. Màu bút (Pen Color)”Dùng tên màu tiếng Anh
Phần tiêu đề “Dùng tên màu tiếng Anh”import turtle
t = turtle.Turtle()
# Đổi màu bútt.pencolor("red")t.forward(100)
t.pencolor("blue")t.left(90)t.forward(100)
t.pencolor("green")t.left(90)t.forward(100)
turtle.done()Các màu phổ biến
Phần tiêu đề “Các màu phổ biến”"red"- Đỏ"blue"- Xanh dương"green"- Xanh lá"yellow"- Vàng"orange"- Cam"purple"- Tím"pink"- Hồng"brown"- Nâu"black"- Đen"white"- Trắng"gray"- Xám
3. Màu RGB
Phần tiêu đề “3. Màu RGB”RGB (Red, Green, Blue) - mỗi giá trị từ 0 đến 1
import turtle
screen = turtle.Screen()screen.colormode(255) # Cho phép dùng giá trị 0-255
t = turtle.Turtle()
# Màu đỏ thuần túyt.pencolor(255, 0, 0)t.forward(100)
# Màu xanh lá thuần túyt.pencolor(0, 255, 0)t.left(90)t.forward(100)
# Màu xanh dương thuần túyt.pencolor(0, 0, 255)t.left(90)t.forward(100)
turtle.done()Một số màu RGB hay dùng
Phần tiêu đề “Một số màu RGB hay dùng”# Màu hồngt.pencolor(255, 192, 203)
# Màu camt.pencolor(255, 165, 0)
# Màu tímt.pencolor(128, 0, 128)
# Màu vàng goldt.pencolor(255, 215, 0)4. Tô màu hình (Fill Color)
Phần tiêu đề “4. Tô màu hình (Fill Color)”import turtle
t = turtle.Turtle()t.speed(2)
# Bắt đầu tô màut.fillcolor("yellow")t.begin_fill()
# Vẽ hình vuôngfor i in range(4): t.forward(100) t.left(90)
# Kết thúc tô màut.end_fill()
turtle.done()Các bước tô màu:
fillcolor(màu)- Chọn màu tôbegin_fill()- Bắt đầu tô- Vẽ hình
end_fill()- Kết thúc tô
5. Đặt cả màu bút và màu tô cùng lúc
Phần tiêu đề “5. Đặt cả màu bút và màu tô cùng lúc”import turtle
t = turtle.Turtle()t.speed(2)
# Đặt màu bút là đỏ, màu tô là vàngt.color("red", "yellow")
t.begin_fill()for i in range(5): t.forward(100) t.right(144)t.end_fill()
turtle.done()Cú pháp: color(pencolor, fillcolor)
6. Vẽ nhiều hình với màu khác nhau
Phần tiêu đề “6. Vẽ nhiều hình với màu khác nhau”import turtle
t = turtle.Turtle()t.speed(0)
# Danh sách màucolors = ["red", "orange", "yellow", "green", "blue", "purple"]
# Vẽ 6 hình trònfor i in range(6): t.color(colors[i]) t.begin_fill() t.circle(50) t.end_fill()
t.penup() t.forward(120) t.pendown()
turtle.done()7. Tạo gradient (chuyển màu dần)
Phần tiêu đề “7. Tạo gradient (chuyển màu dần)”import turtle
screen = turtle.Screen()screen.colormode(255)screen.bgcolor("black")
t = turtle.Turtle()t.speed(0)t.width(3)
# Vẽ các hình tròn với màu chuyển dầnfor i in range(50): # Màu đỏ tăng dần t.pencolor(255 - i*5, i*5, 100) t.circle(50 + i*2) t.left(10)
turtle.done()8. Vẽ cầu vồng
Phần tiêu đề “8. Vẽ cầu vồng”import turtle
t = turtle.Turtle()t.speed(0)t.width(10)screen = turtle.Screen()screen.bgcolor("lightblue")
# Màu cầu vồngcolors = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"]
# Vẽ 7 cung trònfor i in range(7): t.pencolor(colors[i]) t.circle(100 - i*10) t.penup() t.goto(0, -10 * (i+1)) t.pendown()
t.hideturtle()turtle.done()9. Tô màu hình phức tạp
Phần tiêu đề “9. Tô màu hình phức tạp”Vẽ mặt trời
Phần tiêu đề “Vẽ mặt trời”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("skyblue")
# Vẽ mặt trờit.color("orange", "yellow")t.begin_fill()t.circle(50)t.end_fill()
# Vẽ tia nắngt.pencolor("orange")t.pensize(3)
for i in range(12): t.penup() t.goto(0, 0) t.pendown() t.forward(80) t.left(30)
t.hideturtle()turtle.done()Vẽ bông hoa
Phần tiêu đề “Vẽ bông hoa”import turtle
t = turtle.Turtle()t.speed(0)screen = turtle.Screen()screen.bgcolor("lightgreen")
# Vẽ 10 cánh hoat.color("red", "pink")for i in range(10): t.begin_fill() t.circle(50, 60) t.left(120) t.circle(50, 60) t.end_fill() t.left(36)
# Vẽ tâm hoat.penup()t.goto(0, -10)t.pendown()t.color("yellow", "yellow")t.begin_fill()t.circle(10)t.end_fill()
t.hideturtle()turtle.done()10. Tạo màu ngẫu nhiên
Phần tiêu đề “10. Tạo màu ngẫu nhiên”import turtleimport random
screen = turtle.Screen()screen.colormode(255)screen.bgcolor("white")
t = turtle.Turtle()t.speed(0)
# Vẽ 20 hình với màu ngẫu nhiênfor i in range(20): # Tạo màu ngẫu nhiên r = random.randint(0, 255) g = random.randint(0, 255) b = random.randint(0, 255)
t.color(r, g, b) t.begin_fill()
# Vẽ hình vuông for j in range(4): t.forward(100) t.left(90)
t.end_fill() t.left(18)
t.hideturtle()turtle.done()11. Ví dụ nâng cao: Vẽ lá cờ
Phần tiêu đề “11. Ví dụ nâng cao: Vẽ lá cờ”import turtle
screen = turtle.Screen()screen.bgcolor("white")
t = turtle.Turtle()t.speed(2)
# Vẽ nền đỏt.color("black", "red")t.begin_fill()for i in range(2): t.forward(300) t.left(90) t.forward(200) t.left(90)t.end_fill()
# Vẽ ngôi sao vàng ở giữat.penup()t.goto(150, 100)t.pendown()t.color("yellow", "yellow")t.begin_fill()
for i in range(5): t.forward(50) t.right(144)
t.end_fill()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ẽ đèn giao thông
Phần tiêu đề “Bài 1: Vẽ đèn giao thông”Vẽ 3 hình tròn (đỏ, vàng, xanh) xếp dọc
Bài 2: Vẽ Olympic
Phần tiêu đề “Bài 2: Vẽ Olympic”Vẽ 5 vòng tròn Olympic (xanh, vàng, đen, xanh lá, đỏ)
Bài 3: Vẽ cờ Việt Nam
Phần tiêu đề “Bài 3: Vẽ cờ Việt Nam”Vẽ lá cờ Việt Nam (nền đỏ, ngôi sao vàng 5 cánh ở giữa)
Bài 4: Vẽ bầu trời đêm
Phần tiêu đề “Bài 4: Vẽ bầu trời đêm”Vẽ nền đen, nhiều ngôi sao vàng ở vị trí ngẫu nhiên
Gợi ý Bài 1:
Phần tiêu đề “Gợi ý Bài 1:”import turtle
t = turtle.Turtle()t.speed(2)
# Vẽ hộp đent.color("black", "black")t.begin_fill()for i in range(2): t.forward(100) t.left(90) t.forward(300) t.left(90)t.end_fill()
# Vẽ 3 đèncolors = ["red", "yellow", "green"]y_positions = [50, 150, 250]
for i in range(3): t.penup() t.goto(50, y_positions[i]) t.pendown() t.color("black", colors[i]) t.begin_fill() t.circle(30) t.end_fill()
t.hideturtle()turtle.done()Bảng màu HTML thường dùng
Phần tiêu đề “Bảng màu HTML thường dùng”| Tên | Mã màu | RGB |
|---|---|---|
| Red | #FF0000 | (255, 0, 0) |
| Blue | #0000FF | (0, 0, 255) |
| Green | #00FF00 | (0, 255, 0) |
| Yellow | #FFFF00 | (255, 255, 0) |
| Orange | #FFA500 | (255, 165, 0) |
| Purple | #800080 | (128, 0, 128) |
| Pink | #FFC0CB | (255, 192, 203) |
| Gold | #FFD700 | (255, 215, 0) |
Tổng kết
Phần tiêu đề “Tổng kết”Trong bài này, bạn đã học:
- ✅ Đổi màu nền với
bgcolor() - ✅ Đổi màu bút với
pencolor() - ✅ Sử dụng màu theo tên và RGB
- ✅ Tô màu hình với
fillcolor(),begin_fill(),end_fill() - ✅ Đặt cả màu bút và tô cùng lúc với
color() - ✅ Tạo gradient và màu ngẫu nhiên
- ✅ Vẽ các hình phức tạp có màu sắc
Bài tiếp theo, chúng ta sẽ học vẽ các mẫu hoa văn đẹp mắt!