Cách vẽ các hình dạng khác nhau bằng một turtle trong Python

Hệ thống đồ họa là một cách tuyệt vời cho người mới bắt đầu chinh phục cả Python và vẽ tranh 2D. Dưới đây là cách vẽ các hình dạng khác nhau bằng một turtle trong Python.

Lập trình Python

Python có nhiều mô đun cung cấp chức năng cho rất nhiều tác vụ khác nhau. Một trong số chúng là mô đun turtle (con rùa), thường được dùng để dạy lập trình cho người mới bắt đầu.

Bạn có thể dùng mô đun turtle để vẽ đồ họa như đường thẳng hoặc hình dạng trên một canvas. Ban đầu, bạn có thể vẽ một hoặc nhiều con rùa trên canvas. Chúng đại diện cho các điểm mà bạn có thể di chuyển xung quanh. Khi di chuyển xung quanh, các con rùa (turtle) vẽ đường thẳng từ điểm này tới điểm khác.

Bạn có thể vẽ các hình dạng khác nhau theo phương pháp này, bao gồm hình vuông, tam giác và hình tròn.

Cách dùng turtle để vẽ hình dạng

Bạn có thể dùng Python để tạo nhiều chương trình thực tế, chẳng hạn như bảng màu. Khi vẽ các turtle trong Python, đầu tiên, bạn cần một canvas, và một đối tượng turtle để vẽ các hình dạng.

1. Tạo file mới mang tên shapes.py.

2. Ở phía trên cùng của file, nhập mô đun turtle:

import turtle

3. Dùng mô đun turtle để tạo một cửa sổ mới. Nó sẽ giống như một canvas để vẽ các hình dạng lên trên:

window = turtle.Screen()
window.bgcolor("white")

4. Tạo một đối tượng turtle mới, chọn hình dạng và màu sắc của nó:

turtle_1 = turtle.Turtle()
turtle_1.shape("turtle")
turtle_1.color("red")

5. Ở phía dưới cùng của file, dùng hàm exitonclick() để giữ canvas luôn mở. Canvas này sẽ chỉ đóng khi bạn click vào nó. Đảm bảo bạn giữ đường này làm lệnh cuối cùng trong chương trình. Nếu không, bạn sẽ gặp phải lỗi.

window.exitonclick()

6. Mở một nhắc lệnh hoặc terminal, và điều hướng tới thư mục tại nơi lưu tập lệnh Python. Ví dụ, nếu lưu file Python trên desktop của Windows PC, lệnh của bạn trông sẽ tương tự như sau:

cd C:\Users\Sharl\Desktop

7. Chạy lệnh Python để mở canvas turtle. Mặc định, hướng ban đầu của con rùa và xoay mặt về bên phải:

Con rùa trong Python

Cách vẽ hình vuông và hình chữ nhật

Vẽ hình vuông hoặc chữ nhật bằng một con rùa trên canvas. Dùng các hàm forward()backward() để di chuyển con rùa xung quanh. Bạn cũng có thể dùng hàm left() hoặc right() để thay đổi hướng mà con rùa đang hướng tới.

1. Vì turtle đã quay về hướng ban đầu, di chuyển về phía trước 100 pixel để vẽ đường đầu tiên của hình vuông:

turtle_1.forward(100)

2. Xoay sang trái 90 độ để đối mặt với hướng đi xuống. Di chuyển về phía trước lần nữa để vẽ cạnh thứ hai của hình vuông:

turtle_1.right(90)
turtle_1.forward(100)

3. Tiếp tục xoay sang phải 90 độ để vẽ hai cạnh còn lại. Để giữ nguyên hình vuông, đảm bảo các cạnh đều có kích thước là 100 pixel:

turtle_1.right(90)
turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(100)

4. Để thay đổi hình dạng sang một hình chữ nhật, chỉnh sửa code để làm hai cạnh đối diện nhau dài hơn:

turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(200)
turtle_1.right(90)
turtle_1.forward(100)
turtle_1.right(90)
turtle_1.forward(200)

5. Chạy lại lệnh Python bằng một dòng lệnh hoặc terminal để mở canvas và xem hình chữ nhật:

Vẽ hình chữ nhật bằng Python

Cách vẽ hình tam giác

Vẽ một hình tam giác bằng hàm forward(), backward(), left(), hoặc right(). Vì bạn đã vẽ một hình vuông ở vị trí khởi đầu của canvas, hãy vẽ hình tam giác trên phần khác của canvas.

1. Tạo một đối tượng turtle mới. Bạn có thể thay đổi hình dạng để dùng một mũi tên thay cho turtle:

turtle_2 = turtle.Turtle()
turtle_2.shape("arrow")
turtle_2.color("blue")

2. Dùng hàm penup() để nhấc đối tượng con rùa ra khỏi canvas, để nó không còn vẽ một đường thẳng:

turtle_2.penup()

3. Di chuyển đối tượng sang điểm khác trên canvas. Canvas dùng một mặt phẳng Cartesian cho các tọa độ, vì thế, điểm khởi đầu của nó ở 0,0. Tọa độ -250, 200 hướng về góc bên trái phía trên cùng của canvas.

turtle_2.goto(-250, 200)

4. Dùng hàm pendown() để đặt đối tượng turtle quay trở lại canvas, sau đó, turtle có thể vẽ lại các đường thẳng:

turtle_2.pendown()

5. Vẽ 3 cạnh của hình tam giác bằng cách xoay sang trái 120 độ 3 lần. Mỗi lần, vẽ một đường để tạo cạnh của hình tam giác:

turtle_2.forward(100)
turtle_2.left(120)
turtle_2.forward(100)
turtle_2.left(120)
turtle_2.forward(100)
turtle_2.left(120)

6. Ngoài ra, tạo hình tam giác bằng một for-loop:

for i in range(3):
  turtle_2.forward(100)
  turtle_2.left(120)

7. Chạy lại lệnh Python bằng một dòng lệnh hoặc terminal để mở canvas và xem hình tam giác:

Chạy lại lệnh trong Python

Cách vẽ hình tròn

Dùng hàm circle() để vẽ một hình tròn. Bạn có thể chọn đường kính của hình tròn bằng cách nhập một giá trị làm đối số cho hàm này.

1. Tạo đối tượng turtle mới khác để vẽ hình tròn, thiết lập thuộc tính màu và hình dạng của nó:

turtle_3 = turtle.Turtle()
turtle_3.shape("circle")
turtle_3.color("green")

2. Di chuyển turtle sang phần khác của canvas. Dùng hàm penup() để ngăn đối tượng vẽ một đường khi nó di chuyển. Sau khi di chuyển turtle, đặt bút xuống:

turtle_3.penup()
turtle_3.goto(-100, 50)
turtle_3.pendown() 

3. Dùng hàm circle() để vẽ hình tròn. Nhập đường kính của hình tròn vào hàm.

turtle_3.circle(50)

4. Chạy lại lệnh Python bằng dòng lệnh hoặc terminal để mở canvas và xem hình tròn:

Vẽ hình tròn bằng Python

Cách vẽ các hình dạng như hình lục giác và bát giác

Để vẽ hình dạng như hình lục giác và bát giác, bạn có thể dùng for-loop tương tự như hàm đã dùng ở ví dụ vẽ hình tam giác. Bạn có thể chọn cùng số lượng cạnh và độ dài các cạnh bằng nhau.

1. Tạo một đối tượng turtle mới, đặt thuộc tính hình dạng và màu sắc:

turtle_4 = turtle.Turtle()
turtle_4.shape("turtle")
turtle_4.color("purple")

2. Di chuyển đối tượng con rùa tới vị trí khác trên canvas:

turtle_4.penup()
turtle_4.goto(150,200)
turtle_4.pendown()

3. Trong hình lục giác, tại giao điểm của mỗi cạnh, góc tại điểm đó là 60 độ. Sau khi vẽ một đường thẳng, di chuyển 60 độ sang bên phải để vẽ đường thẳng tiếp theo. Làm việc này cho tất cả 6 cạnh của hình lục giác:

for i in range(6):
  turtle_4.forward(100)
  turtle_4.right(60)

4. Bạn có thể vẽ kiểu hình dạng khác với các cạnh bằng nhau bằng cách chia số cạnh cho 360 để tính giá trị của góc. Đối với hình bát giác, mỗi góc nằm giữa các cạnh là 45 độ. Đối hình bát giác, xoay phải từng cạnh theo góc 45 độ và vẽ đường thẳng:

for i in range(8):
  turtle_4.forward(100)
  turtle_4.right(45)

5. Chạy lại lệnh Python bằng một dòng lệnh hoặc terminal để mở canvas và xem hình lục giác hoặc bát giác. Bạn cũng có thể xem mã nguồn đầy đủ cho tất cả các hình dạng trên Github.

Vẽ hình lục giác trong Python

Trên đây là cách vẽ các hình dạng khác nhau bằng turtle trong Python. Hi vọng bài viết hữu ích với các bạn.

Thứ Năm, 16/02/2023 16:42
52 👨 12.445
0 Bình luận
Sắp xếp theo
    ❖ Python