Vẽ thứ gì đó bằng Python

Python Turtle là thứ phát triển từ ngôn ngữ lập trình Logo, được phát minh vào năm 1966 bởi Wally Feurzig. Với sự trợ giúp của phương pháp Lập trình hướng đối tượng, chúng ta có thể dễ dàng tạo ra một bộ hoạt ảnh ấn tượng

Hoạt hình sau được tạo bởi Python Turtle;

Các yêu cầu

Trước khi sử dụng Python Turtle cho hoạt ảnh, vui lòng thực hiện các bước sau để cài đặt môi trường

  • Tải xuống phiên bản Python mới nhất từ ​​đây
  • Tải Python IDLE - Môi trường học tập và phát triển tích hợp - từ Windows
  • Mở một tệp mới và lưu nó với. phần mở rộng py
  • Viết xuống nhập rùa ở đầu tệp để nhập mô-đun - lớp và phương thức
  • Viết mã và tạo hoạt ảnh ấn tượng

Cách tốt nhất để học Python rùa là chạy bộ mã, từ đơn giản nhất đến nâng cao hơn, thay vì cố gắng hiểu đầy đủ trình giả lập ngay từ đầu. Đây là cách tiếp cận được áp dụng trong hướng dẫn này

Tài liệu về rùa Python có tại đây

Dưới đây là một số phương pháp rùa;

hướng dẫný nghĩarùa. về phía trước (số)Di chuyển về phía trước rùa. quay lại (số)Di chuyển lùi rùa. phải (góc) Xoay rùa theo chiều kim đồng hồ. trái(góc) Xoay con rùa ngược chiều kim đồng hồ. bút màu(dây màu)Vẽ rùa màu. pensize(số)Chọn cỡ ngòi bút. hình tròn(bán kính)Vẽ con rùa hình tròn. tốc độ (số) Chọn tốc độ - 1 đến 10 rùa. viết (tin nhắn, phông chữ) Viết trên màn hình rùa. ht() Ẩn con rùa. setpos(x,y)Thay đổi vị trí của con rùa

Vẽ góc vuông

Hoạt hình sau đây cho thấy chú rùa đang tạo ra một góc vuông trên màn hình

Đây là mã cho hình ảnh động trên

nhập rùa    # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(400,300)    #chọn kích thước màn hình
màn hình. bgcolor('black')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(5)    #chọn kích cỡ ngòi bút
trtl. speed(1)    #chọn tốc độ vẽ
trtl. shape('turtle')   #chọn hình dạng ngòi bút
trtl. forward(150)    #vẽ đường 200 pixel
trtl. phải(90)    #yêu cầu rùa quay 90 độ
trtl. forward(150)    #vẽ đường 200 pixel
trtl. penup()    # chuẩn bị di chuyển bút mà không cần vẽ
trtl. setpos(-140,-120)    # tạo vị trí mới của con rùa
trtl. pendown()   # hạ bút xuống để vẽ lại
trtl. pencolor('green')    # chọn màu bút là xanh
trtl. write('Vivax Solutions', font=("Arial", 20, "bold"))    # chọn phông chữ
trtl. penup()
trtl. ht()    # ẩn con rùa khỏi màn hình

dấu # cho biết các nhận xét trong tập lệnh Python

Vẽ một hình vuông

Hoạt hình sau đây cho thấy cách con rùa vẽ một hình vuông trên màn hình

Đây là mã cho hình ảnh động trên

nhập rùa # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(400,300)    #chọn kích thước màn hình
màn hình. bgcolor('black')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(5)    #chọn kích cỡ ngòi bút
trtl. speed(1)    #chọn tốc độ vẽ
trtl. shape('turtle')   #chọn hình dạng ngòi bút
trtl. chuyển tiếp(100)    #top line
trtl. phải(90)
trtl. chuyển tiếp(100)    # đường thẳng đứng bên phải
trtl. phải(90)
trtl. chuyển tiếp(100)   # dòng dưới cùng
trtl. phải(90)
trtl. forward(100)   # dòng dọc bên trái
# in thông tin
trtl. penup()
trtl. setpos(-120,100)
trtl. pendown()
trtl. pencolor('green')
trtl. write('Square - Vivax Solutions', font=("Arial", 16, "bold"))
trtl. penup()
trtl. ht()

Mặc dù, đoạn mã trên tạo ra một hình vuông, nhưng đó không phải là cách lập trình tốt do sự lặp lại của mã, điều này có thể đã được giải quyết bằng một vòng lặp đơn giản. Do đó, mã có thể được sửa đổi để tạo ra hình dạng tương tự với hiệu quả như sau

nhập rùa    # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(400,300)    #chọn kích thước màn hình
màn hình. bgcolor('black')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(5)    #chọn kích cỡ ngòi bút
trtl. speed(1)    #chọn tốc độ vẽ
trtl. shape('turtle')   #chọn hình dạng ngòi bút
cho tôi trong phạm vi(4). # vòng lặp for để giảm thiểu các dòng mã giống nhau được viết
      trtl. chuyển tiếp(100)   # cho dòng
      trtl. phải(90)    # để chuyển
# in thông tin
trtl. penup()
trtl. setpos(-120,100)
trtl. pendown()
trtl. pencolor('green')
trtl. write('Square - Vivax Solutions', font=("Arial", 16, "bold"))
trtl. penup()
trtl. ht()

Vòng lặp for giúp vẽ hình vuông dễ dàng hơn nhiều. Nó đóng vai trò thực sự quan trọng khi chúng ta tạo các đa giác khác

Sách được đề xuất

Vẽ thứ gì đó bằng Python

Vẽ thứ gì đó bằng Python

Nếu bạn đang học khoa học máy tính tại GCSE, đây là bộ sách dành cho bạn. chúng là những hướng dẫn sửa đổi, tuy nhiên chúng bao gồm mọi chủ đề đơn lẻ, đồng thời cung cấp nhiều thông tin để nắm bắt các khái niệm theo một cách sáng tạo;

Vẽ đa giác

Để thay đổi đoạn mã trên để vẽ đa giác, chúng ta cần tính đến một số khái niệm trong hình học. Như bạn có thể thấy, với mỗi lượt, chú rùa di chuyển qua một góc nhất định, được chỉ định bởi right(angle). Đây là góc ngoài của đa giác, giống như 360/n, trong đó n là số cạnh

Với các vòng lặp for và while, đoạn mã sau tạo ra một tập hợp các đa giác trên màn hình - từ hình tam giác đến hình thập giác

Mã cho hoạt ảnh trên như sau

nhập rùa     # nhập mô-đun
nhập thời gian    # nhập mô-đun thời gian trtl = rùa. Turtle()     #tạo đối tượng rùa thuộc lớp Rùa để vẽ
screen=turtle. Screen()     #tạo canvas để vẽ
màn hình. setup(620,470)     #chọn kích thước màn hình
screen. bgpic('bg. gif')     #làm đen canvas
trtl. pencolor('red')     #làm màu bút thành màu đỏ
trtl. pensize(5)     #chọn kích cỡ ngòi bút
trtl. speed(1)     #chọn tốc độ vẽ
trtl. shape('turtle')    #chọn hình dạng ngòi bút
thời gian. sleep(12)
n=3    bắt đầu cho hình tam giác
shapes=['Triangle','Square','Pentagon','Hexagon','Heptagon . #    giới hạn ở hình thập giác
while n<11: #    limiting to a decagon
        đối với tôi trong phạm vi(n). # vòng lặp for để giảm thiểu các dòng mã giống nhau được viết
            trtl. pencolor('đỏ')
             trtl. chuyển tiếp(100)     #top line
            trtl. right(360/n)    #xác định góc ngoài của đa giác
trtl. penup()
trtl. setpos(-80,180)    #di chuyển con rùa để làm cho hoạt ảnh trung tâm hơn
trtl. pendown()
trtl. pencolor('blue')
trtl. write(' Đây là '+shapes[n-3], font=("Arial", 16, "bold"))    #in tên của đa giác
n=n+1< . ngủ(1)
time.sleep(1)
    #khiến rùa ngủ trong một giây trtl. rõ ràng()
trtl. penup()
trtl. setpos(-n*8,n*14)
trtl. xuống cấp ()

Nếu bạn muốn thực hành nó một cách tương tác, đây là mã

Vẽ chữ E

Xin lưu ý cách hình ảnh được căn giữa trên màn hình, với con rùa. phương thức setpos()

Vẽ vòng tròn

Đây là mã để thêm hai số và vẽ một vòng tròn

nhập rùa    # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(420,320)    #chọn kích thước màn hình
màn hình. bgpic('bg. gif')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(4)    #chọn kích cỡ ngòi bút
trtl. speed(1)    #chọn tốc độ vẽ
trtl. shape('turtle')   #chọn hình dạng ngòi bút
trtl. circle(60)   vẽ hình tròn có bán kính 60 pixel

Hoạt hình sau đây cho thấy cách hai số được lấy làm hai đầu vào và câu trả lời sau đó được đưa ra

Như bạn có thể thấy, mặc định điểm bắt đầu của hình tròn là tâm màn hình, điểm này không phải là tâm của hình tròn. Để giải quyết vấn đề này, chúng ta phải đặt vị trí theo mã như sau

nhập rùa    # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(420,320)    #chọn kích thước màn hình
màn hình. bgpic('bg. gif')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(4)    #chọn kích cỡ ngòi bút
trtl. shape('turtle')   #chọn hình dạng ngòi bút
trtl. penup()   #di chuyển bút lên
trtl. setpos(0,-60)   #Đặt vị trí mới
trtl. pendown()   #di chuyển bút xuống
trtl. circle(60)   #vẽ hình tròn có bán kính 60 pixel

quảng cáo. Không còn đau họng khổ sở với điều này

Vẽ vòng tròn đồng tâm

Đây là mã để vẽ các vòng tròn đồng tâm với sự trợ giúp của các vòng lặp

nhập rùa    # nhập mô-đun
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(420,320)    #chọn kích thước màn hình
màn hình. bgpic('bg. gif')    #làm đen canvas
trtl. pencolor('red')    #làm màu bút thành màu đỏ
trtl. pensize(4)    #chọn kích cỡ ngòi bút
trtl. shape('turtle')   #chọn hình dạng ngòi bút
n=0
trong khi n
n=n+1
trtl. penup()
trtl. setpos(0,-n*20)
trtl. pendown()
trtl. hình tròn(20*n)   

Hoạt hình sau đây cho thấy hoạt động như thế nào

thay đổi màu sắc

Màu sắc của bút có thể thay đổi theo nhiều cách khác nhau;

  1. rùa. bút màu ('đỏ')
  2. rùa. bút màu (đỏ, lục, lam)

Nếu bạn sử dụng phương pháp thứ hai, đỏ, lục và lam có thể là bất kỳ số nguyên nào trong khoảng từ 1 - 255. Tuy nhiên, trước đó, rùa. colormode(1) hoặc con rùa. colormode(255) phải được khai báo trong mã

Đây là mã

nhập rùa    # nhập mô-đun
nhập ngẫu nhiên    # nhập mô-đun ngẫu nhiên để tạo số ngẫu nhiên
trtl = rùa. Turtle()    #tạo một đối tượng rùa thuộc lớp Turtle để vẽ
screen=turtle. Screen()    #tạo canvas để vẽ
màn hình. setup(420,320)    #chọn kích thước màn hình
màn hình. bgpic('bg. gif')    #làm đen canvas
trtl. pensize(4)    #chọn kích cỡ ngòi bút
trtl. speed(1)    #chọn tốc độ vẽ
trtl. shape('turtle')   #chọn hình dạng ngòi bút
n=0
while n
r=ngẫu nhiên. randint(1,120)   # số ngẫu nhiên cho màu đỏ
g=random. randint(81.200)   #số ngẫu nhiên cho màu xanh
b=random. randint(61,255)   # số ngẫu nhiên cho
rùa xanh. colormode(255)   #khai báo chế độ màu
trtl. pencolor(r,g,b)   #pen color
n=n+1
trtl. penup()
trtl. setpos(0,-n*20)
trtl. pendown()
trtl. hình tròn(20*n)

Tất nhiên, hình ảnh động sau đây hiển thị đầu ra - với màu sắc ngẫu nhiên

Hoạt hình nâng cao - rùa trong môi trường sống của nó

Đoạn mã sau tạo ra một con rùa di chuyển trên bãi biển - để lại một mẫu thông thường nhất định

nhập rùa
nhập ngẫu nhiên
trtl = rùa. Rùa()
screen=rùa. Màn hình()
màn hình. thiết lập(420,320)
màn hình. bgpic('bg. gif')
trtl. pensize(4)
trtl. tốc độ(1)
trtl. hình dạng('con rùa')
con rùa. colormode(255)
trtl. bút màu(242,242,242)
trtl. penup()
trtl. setpos(-160,-100)
trtl. pendown()
for i in range(4).
      trtl. chuyển tiếp(40)
        trtl. left(90)
        trtl. chuyển tiếp(30)
        trtl. phải(90)
        trtl. chuyển tiếp(40)

Hoạt hình sau đây cho thấy quá trình lặp lại dẫn đến đếm ngược, dựa trên đầu vào của người dùng

Hoạt hình nâng cao - rùa chuyển hướng

Trong phim hoạt hình này, rùa để lại dấu chân trên bãi biển. điều này đạt được bởi rùa. phương thức tem() cùng với rùa. bút bi(). Đây là mã

nhập rùa
nhập ngẫu nhiên
thời gian nhập
screen=turtle. Màn hình()
trtl=rùa. Màn hình rùa()
. thiết lập(420,320)
màn hình. bgpic('bg. gif')
trtl. shape('con rùa')
trtl. color('darkGoldenrod','black')
s=10
trtl. penup()
trtl. setpos(30,30)
cho tôi trong phạm vi(28).
        s=s+2
        trtl. tem()
        trtl. chuyển tiếp
        trtl. đúng(25)
        thời gian. ngủ (0. 25)      #được kích hoạt với thời gian nghỉ 1/4 giây

Hoạt hình như sau

Ảnh động nâng cao - ngôi sao đầy màu sắc

Với sự trợ giúp của hình học đơn giản, một ngôi sao có thể được vẽ bởi Python Turtle. Đây là mã

nhập rùa
thời gian nhập
screen=turtle. Màn hình()
trtl=rùa. Màn hình rùa()
. thiết lập(420,320)
màn hình. bgcolor('black')
clr=['red','green','blue','yellow','purple']
trtl. pensize(4)
trtl. penup()
trtl. setpos(-90,30)
trtl. pendown()
for i in range(5).
     trtl. pencolor(clr[i])
     trtl. chuyển tiếp(200)
     trtl. phải(144)
trtl. penup()
trtl. setpos(80,-140)
trtl. pendown()
trtl. pencolor('olive')
trtl. write('Vivax Solutions',font=("Arial", 12, "normal"))
trtl. ht()

Đây là hoạt hình tạo ra ngôi sao

Hoạt hình nâng cao - mặt số đồng hồ

Trong hoạt ảnh sau, Python Rùa được sử dụng để tạo mặt số đồng hồ - với các số, từ 1 đến 12, được bao quanh bởi một vòng tròn. Đây là mã

nhập rùa
screen=turtle. Màn hình()
trtl=rùa. Màn hình con rùa()
. thiết lập(620,620)
màn hình. bgcolor('black')
clr=['red','green','blue','yellow','purple']
trtl. pensize(4)
trtl. shape('con rùa')
trtl. penup()
trtl. pencolor('red')
m=0
for i in range(12).
      m=m+1
      trtl. penup()
      trtl. setheading(-30*i+60)
      trtl. chuyển tiếp(150)
    trtl. pendown()
      trtl. chuyển tiếp(25)
      trtl. penup()
      trtl. chuyển tiếp(20)
      trtl. write(str(m),align="center",font=("Arial", 12, "normal"))
      if m==12.
        m=0
      trtl. home()
trtl. home()
trtl. setpos(0,-250)
trtl. pendown()
trtl. pensize(10)
trtl. pencolor('lam')
trtl. hình tròn(250)
trtl. penup()
trtl. setpos(150,-270)
trtl. pendown()
trtl. pencolor('olive')
trtl. write('Vivax Solutions',font=("Arial", 12, "normal"))
trtl. ht()

Đây là hình ảnh động tại nơi làm việc

Ảnh động nâng cao - bông hoa nhiều màu

Đoạn mã sau tạo ra một bông hoa với nhiều màu sắc khác nhau. Màu sắc được cung cấp với sự trợ giúp của một danh sách. Mã này như sau

trtl=rùa. Rùa()
screen=rùa. Màn hình()
màn hình. thiết lập(620,620)
màn hình. bgcolor('đen')
trtl. pensize(3)
trtl. speed(10)
n=-1
cho góc trong phạm vi(0,360,15).
     n=n+1
       if n==5.
       n=-1
      trtl. color(colors[n])
      trtl. seth(angle)
      trtl. hình tròn(100)
trtl. penup()
trtl. setpos(150,-270)
trtl. pendown()
trtl. pencolor('olive')
trtl. write('Vivax Solutions',font=("Arial", 12, "normal"))
trtl. ht()

Đây là hoạt hình

Như bạn có thể thấy, hiệu ứng được tạo ra bởi con rùa. seth() chức năng - trong chuyển hướng của rùa

Vẽ nhiều hình vuông

Trong hoạt ảnh này, số ô vuông định trước được vẽ với sự trợ giúp của một hàm. Hàm có hai tham số - chiều dài của hình vuông và màu sắc. Sau đó, sử dụng vòng lặp for, chúng ta có thể vẽ số ô vuông cần thiết. Bạn có thể thay đổi độ dài và màu sắc để thực hành tương tác

Bạn có thể vẽ mọi thứ bằng Python không?

turtle là một thư viện Python được cài đặt sẵn cho phép người dùng tạo ảnh và hình dạng bằng cách cung cấp cho chúng một canvas ảo . Cây bút trên màn hình mà bạn sử dụng để vẽ được gọi là con rùa và đây là tên gọi của thư viện.

Làm cách nào để vẽ đồ họa bằng Python?

Tạo đồ họa trong Python bao gồm một số bước cơ bản và cố định. .
Nhập tất cả các thư viện từ Lớp đồ họa
Tạo một đối tượng Cửa sổ
Vẽ các đối tượng trong cửa sổ đã tạo
Đóng cửa sổ

Làm cách nào để vẽ hình bằng Python?

Lập trình hướng đối tượng trong Python. Tạo trò chơi phiêu lưu của riêng bạn .
từ nhập hình dạng Giấy, Hình tam giác, Hình chữ nhật, Hình bầu dục
giấy = Giấy()
rect1 = Hình chữ nhật()
trực tràng1. set_width(200) rect1. set_height(100) rect1. .
trực tràng1. vẽ tranh()
giấy. trưng bày()
# đưa code tạo Rectangle thứ 2 vào đây. trưng bày()

Làm cách nào để vẽ một hình ảnh bằng Python?

Chuyển đổi ảnh thành bản phác thảo bằng bút chì bao gồm các bước sau. .
Bước 1. Chuyển đổi sang hình ảnh màu xám. Sử dụng chức năng cvtColor của OpenCV. .
Bước 2. Đảo ngược hình ảnh. .
Bước 3. Làm mờ hình ảnh. .
Bước 4. Đảo ngược hình ảnh mờ. .
Bước 5. phác thảo. .
Bước 6. Lưu bản phác thảo. .
Bước 7. Hiển thị bản phác thảo