Các lệnh di chuyển và vẽ cơ bản
1. Di chuyển (Movement)
Di chuyển tiến và lùi
import turtle
t = turtle.Turtle()
# Di chuyển tiến
t.forward(100) # Hoặc t.fd(100)
# Di chuyển lùi
t.backward(100) # Hoặc t.bk(100) hoặc t.back(100)
turtle.done()Giải thích:
forward(distance): Di chuyển tiến về phía trướcbackward(distance): Di chuyển lùi về phía saudistance: Khoảng cách tính bằng pixels
Di chuyển đến vị trí cụ thể
import turtle
t = turtle.Turtle()
# Di chuyển đến tọa độ (100, 100)
t.goto(100, 100) # Hoặc t.setpos(100, 100) hoặc t.setposition(100, 100)
# Di chuyển về gốc tọa độ (0, 0)
t.home()
turtle.done()2. Xoay (Rotation)
Xoay theo góc
import turtle
t = turtle.Turtle()
# Xoay phải (clockwise)
t.right(90) # Hoặc t.rt(90)
# Xoay trái (counter-clockwise)
t.left(90) # Hoặc t.lt(90)
turtle.done()Đặt hướng cụ thể
import turtle
t = turtle.Turtle()
# Đặt hướng theo góc
t.setheading(0) # Hướng về phải
t.setheading(90) # Hướng lên trên
t.setheading(180) # Hướng về trái
t.setheading(270) # Hướng xuống dưới
turtle.done()3. Điều khiển bút vẽ
Nhấc bút và hạ bút
import turtle
t = turtle.Turtle()
t.forward(100)
# Nhấc bút lên (không vẽ khi di chuyển)
t.penup() # Hoặc t.pu() hoặc t.up()
t.forward(50) # Di chuyển mà không vẽ
# Hạ bút xuống (vẽ khi di chuyển)
t.pendown() # Hoặc t.pd() hoặc t.down()
t.forward(100) # Vẽ lại
turtle.done()Độ dày của bút
import turtle
t = turtle.Turtle()
# Đặt độ dày bút
t.pensize(1) # Mỏng
t.forward(100)
t.pensize(5) # Trung bình
t.forward(100)
t.pensize(10) # Dày
t.forward(100)
turtle.done()Tốc độ vẽ
import turtle
t = turtle.Turtle()
# Đặt tốc độ (1-10, 0 = nhanh nhất)
t.speed(1) # Chậm nhất
t.speed(5) # Trung bình
t.speed(10) # Nhanh
t.speed(0) # Nhanh nhất (không có animation)
turtle.done()4. Vẽ hình tròn và cung
Vẽ hình tròn
import turtle
t = turtle.Turtle()
# Vẽ hình tròn với bán kính 50
t.circle(50)
# Vẽ hình tròn lớn hơn
t.penup()
t.goto(-100, 0)
t.pendown()
t.circle(100)
turtle.done()Vẽ cung tròn
import turtle
t = turtle.Turtle()
# Vẽ cung 180 độ (nửa hình tròn)
t.circle(50, 180)
# Vẽ cung 90 độ (1/4 hình tròn)
t.circle(50, 90)
turtle.done()Cú pháp: circle(radius, extent)
radius: Bán kính hình trònextent: Góc quét (mặc định 360° - hình tròn đầy đủ)
5. Vẽ chấm (Dot)
import turtle
t = turtle.Turtle()
# Vẽ một chấm
t.dot()
# Vẽ chấm với kích thước
t.dot(20)
# Vẽ chấm với kích thước và màu
t.dot(30, "red")
turtle.done()6. Xóa và reset
import turtle
t = turtle.Turtle()
# Vẽ một số hình
t.circle(50)
t.forward(100)
# Xóa màn hình nhưng giữ vị trí turtle
t.clear()
# Reset turtle về vị trí ban đầu
t.reset()
turtle.done()Ví dụ tổng hợp: Vẽ ngôi nhà
import turtle
t = turtle.Turtle()
t.speed(2)
t.pensize(3)
# Vẽ hình vuông (thân nhà)
for i in range(4):
t.forward(100)
t.left(90)
# Di chuyển để vẽ mái nhà
t.penup()
t.goto(0, 100)
t.pendown()
# Vẽ mái nhà (tam giác)
t.goto(50, 150)
t.goto(100, 100)
# Vẽ cửa
t.penup()
t.goto(35, 0)
t.pendown()
t.setheading(0)
for i in range(2):
t.forward(30)
t.left(90)
t.forward(50)
t.left(90)
turtle.done()Bảng tổng hợp lệnh
| Lệnh | Rút gọn | Chức năng |
|---|---|---|
forward(d) | fd(d) | Di chuyển tiến |
backward(d) | bk(d), back(d) | Di chuyển lùi |
right(angle) | rt(angle) | Xoay phải |
left(angle) | lt(angle) | Xoay trái |
penup() | pu(), up() | Nhấc bút |
pendown() | pd(), down() | Hạ bút |
goto(x, y) | setpos(x, y) | Di chuyển đến vị trí |
home() | - | Về gốc tọa độ |
circle(r) | - | Vẽ hình tròn |
dot(size) | - | Vẽ chấm |
speed(s) | - | Đặt tốc độ |
Bài tập thực hành
- Bài 1: Vẽ hình vuông mà không dùng vòng lặp
- Bài 2: Vẽ đường zigzag (ngoằn ngoèo)
- Bài 3: Vẽ số 8
- Bài 4: Vẽ một bông hoa đơn giản với 5 cánh (dùng circle)
- Bài 5: Vẽ mê cung đơn giản
Gợi ý Bài 2 (Zigzag):
import turtle
t = turtle.Turtle()
t.speed(2)
for i in range(10):
t.forward(50)
t.right(45)
t.forward(50)
t.left(90)
t.forward(50)
t.right(45)
turtle.done()Tổng kết
Trong bài này, bạn đã học:
- ✅ Các lệnh di chuyển: forward, backward, goto
- ✅ Các lệnh xoay: left, right, setheading
- ✅ Điều khiển bút: penup, pendown, pensize, speed
- ✅ Vẽ hình tròn và cung: circle
- ✅ Các lệnh khác: dot, clear, reset
Tiếp theo, chúng ta sẽ học cách vẽ các hình cơ bản phức tạp hơn!