Turtle graphics

Share This Post

什麼是turtle?

<aside> 🎨 Turtle模組是一種簡易的繪圖程式

</aside>

  • turtle 具有三個屬性
    • 位置 (location)
    • 方向 (direction)
    • 筆 (pen)
  • 繪圖座標 Untitled

如何在python中使用turtle模組?

1. 載入turtle模組

import turtle

2. 設定畫布

<aside> 🪴 任何繪圖動作皆須在畫布上,因此需先初始化畫布物件

</aside>

screen = turtle.Screen()

3. 控制turtle動作

<aside> 🌳 可使用函式控制

</aside>

#控制turtle往前10pixel
turtle.foward(10) 

4. 結束繪圖程式

<aside> 🌴 當程式執行完後會直接關閉,需用**mainloop()**控制畫布的開啟狀態

</aside>

screen.mainloop()

常用方法

  • 移動及繪製
    • turtle.foward(distance) & turtle.backward(distance)
      • 簡寫
        • foward ⇒ fd
        • backward ⇒ bk
      • distance → 移動的距離 # 向後移動100px turtle.backward(100)
    • turtle.right(angle) & turtle**.left**(angle)
      • angle → 角度 # 順時針旋轉45度 turtle.right(45) # 逆時針旋轉75度 turtle.left(75)
    • turtle.circle(radius, extent=None, steps=None)
      • radius → 半徑
      • extent → 夾角
      • steps → 圖形的邊數 # 半徑為20的圓形 turtle.circle(20) # 半徑為20的半圓 turtle.circle(20, 180) #半徑為20的正五邊形 turtle.circle(20, None, 5)
    • turtle.goto(x, y)
      • 移動到絕對位置 turtle.goto(-100,-10)
    • turtle.speed(speed)
      • speed → 0~10或speedstring
        • speedstring
          • “fatest” → 0
          • “fast” → 10
          • “normal” → 6
          • “slow” → 3
          • “slowest → 1
        turte.speed(3)
  • 控制畫筆
    • 調整畫筆顏色
    turtle.pencolor("#5f9ea0")
    • 調整畫筆大小
    turtle.pensize(10)
    • 畫筆落下,移動時會畫線
    turtle.pendown()
    • 畫筆提起,移動時不畫線
    turtle.penup()
  • turtle外觀
    • turtle.shape(name)
      • name → 形狀名需存於TurtleScreen的shape字典中
        • e.g. “arrow”, “turtle”, “circle”, “square”, “triangle”
        turtle.shape("turtle")
    • 設定顏色
      • 字串
      turtle_color_list = ["red"]
      • 色票
      turtle_color_list = ["#281597"]
      • 三原色
      turtle_color_list = [(r, g, b)]

實作

用迴圈畫出正方形

import turtle

screen = turtle.Screen()
screen.setup(500, 500)
myTurtle = turtle.Turtle()

for color in ['red', 'blue', 'green', 'orange']:
    myTurtle.color(color)
    myTurtle.forward(100)
    myTurtle.left(90)

# 按一下離開
screen.exitonclick()

龜兔賽跑

from turtle import Turtle, Screen
import random
import time
# 建立畫布
screen = Screen()
screen.colormode(255)
screen.bgcolor("black")
screen.title("龜兔賽跑")
screen.setup(600, 600)

turtle = Turtle()

turtle.hideturtle()

turtle_list = []
turtle_color_list = [(255,0,0), "orange", "yellow", "green", "blue"]
turtle_start_x = -280
turtle_start_y = -200

for player in range(5):
    turtle = Turtle(shape="turtle", visible=False)
    turtle.color(turtle_color_list[player])
    turtle.penup()
    turtle.goto(turtle_start_x, turtle_start_y)
    turtle.showturtle()
    turtle_list.append(turtle)
    turtle_start_y += 100

time.sleep(1)
is_race_on = True
while is_race_on:
    time.sleep(0.04)
    player = random.randint(0, 4)
    turtle_list[player].forward(10)
    if turtle_list[player].xcor() > 260:
        is_race_on = False

screen.exitonclick()

refernces

訂閱研究文章

Get updates and learn from the best

More To Explore

Scroll to Top

hurry up !

軟體工程師培訓

限時免費報名中

藉由與「真實世界軟體專案」相同的技術、工具與開發流程,化簡成與商業機密無關、門檻較低更容易上手的「模擬專案」,讓你有機會在職場前輩的陪伴下,完成真槍實彈的練習,動手解決真實的問題,快速累積個人的經驗與作品,而不只是「學習技術」而已。