タートル レンダラーとも呼ばれるタートルは、Python の組み込みグラフィカル モジュールです. tkinter を使用して基本的なグラフィカル インターフェイスを実装するため、現在使用されている Python 環境は tkinter をサポートする必要があります。
Turtle は、オブジェクト指向とプロセス指向の 2 つの形式でタートル描画の基本コンポーネントを提供します。これを使えば簡単にグラフィックスの描画が実現でき、各種3Dソフトとの相性も良く、機能も充実しており、使い勝手も良く、Python趣味のプログラミングの選択肢にもなっています。
グラフィックス描画の原理も非常に単純で、描画されたグラフィックスは、キャンバス上を移動する小さなカメが残した軌跡によって表されます。したがって、Turtle Drawing を使用すると、単純なアクションを繰り返し実行して複雑で複雑な形状を描画するプログラムを作成できます。
Turtle モジュールの一般的に使用される API は次のとおりです。
これらの API の意味と使い方を上手にマスターできれば、基本的にはパワフルで自由なスタイルなど、あらゆるものを描くことができます。
たとえば、ウイルスのようなグラフィックを描画します。
# 颜色设置:参数1为画笔颜色,参数2为填充色
turtle.color('red', 'blue')
# 开始填充
turtle.begin_fill()
# 循环的前进200,再左转170,如果距画笔位置<1,则结束循环
while True:
turtle.forward(200)
turtle.left(170)
if abs(turtle.pos()) < 1:
break
# 结束填充
turtle.end_fill()
turtle.done()
上記のコードを実行すると、最終的なグラフィック効果は次のようになります。
より単純なオリンピック リングを描画するには、5 つの円を繰り返し描画します。もちろん、最初に次のように、円を繰り返し描画するメソッドを作成する必要があります。
def draw_circle(x, y, c):
# 抬起画笔
turtle.pu()
# 画圆的开始位置
turtle.goto(x, y)
# 放下画笔
turtle.pd()
turtle.color(c)
turtle.circle(40, 360)
次に、次のように、異なる中心座標とリングの色を設定します。
# 设置画笔尺寸
turtle.pensize(3)
# 画五个圆环
draw_circle(0, 0, 'blue')
draw_circle(60, 0, 'black')
draw_circle(120, 0, 'red')
draw_circle(90, -30, 'green')
draw_circle(30, -30, 'yellow')
# 结束
turtle.done()
上記のコードを実行すると、最終的なグラフィック効果は次のようになります。
これでホビープログラミングの意味が理解できるはずですが、「この小さなカメ」の歩行軌跡を制御すれば、どんなグラフィックでも描けますし、このようなプロセス指向のプログラミングもシンプルで分かりやすいものです。
これはもう少し複雑なもの. 国旗のパターンを描くのは難しくありません. 赤い背景領域を描くことです. 黄色の五芒星が5つあれば十分です.
依存モジュールをインポートします。
from turtle import *
import time
最初のステップは、赤い背景領域を描画することです
def draw_bg():
speed(10) # 控制画笔速度
up() # 抬笔
goto(-200, 200) # 跳到指定位置
down() # 落笔
color("red", "red") # 设置线条色和填充色
begin_fill()
forward(480)
right(90)
forward(320)
left(90)
backward(480)
right(90)
backward(320)
end_fill()
2番目のステップは、大きな五芒星を描くことです
def draw_big_star():
up()
forward(64)
left(90)
forward(32)
down()
# 画大五角星
a = 96
color("yellow", "yellow")
begin_fill()
for i in range(1, 6):
forward(a)
right(144)
speed(2)
end_fill()
3番目のステップは、最初の小さな五芒星を描くことです
def draw_first_small_star():
up()
forward(96)
left(53)
forward(36)
# 第一个小五角星
a = 32
begin_fill()
for i in range(1, 6):
forward(a)
right(144)
speed(5)
end_fill()
第4ステップ、2つ目の小さな五芒星を描きます
def draw_second_small_star():
up()
right(80)
forward(42)
left(55)
# 第二个小五角星
a = 32
begin_fill()
for i in range(1, 6):
forward(a)
right(144)
speed(5)
end_fill()
ステップ 5、3 つ目の小さな五芒星を描きます
def draw_third_small_star():
up()
right(96)
forward(32)
# 第三个小五角星
a = 32
begin_fill()
for i in range(1, 6):
forward(a)
right(144)
speed(5)
end_fill()
6番目のステップ、4番目の小さな五芒星を描きます
def draw_four_small_star():
up()
right(54)
forward(45)
right(30)
# 最后一个小五角星
a = 32
begin_fill()
for i in range(1, 6):
forward(a)
right(144)
speed(2)
end_fill()
最後に、テストを実行します
if __name__ == '__main__':
draw_bg()
draw_big_star()
draw_first_small_star()
draw_second_small_star()
draw_third_small_star()
draw_four_small_star()
ht()
time.sleep(10)
描画される最終的な効果は次のとおりです。
もちろん、ドラえもん、ペッパピッグ、ピカチュウなど、あらゆる種類の面白い漫画のキャラクターを描くことは問題ありません。
ドラえもん---->次のように:
ピカチュウ---->次のように:
これらのコードが必要な場合は、後で私の Github にアップロードされます〜
参考:
【人生は短い、Pythonを学べ!Python モジュール シリーズは継続的に更新され、文書化されます...]