はじめに
この記事はSLP KBIT Advent Calender2021の19日目の記事です。
pythonの標準ライブラリであるturtleを使用してイラストを描画してみます。
目次
1.turtleグラフィックスでお絵描きするっていったい
turtleグラフィックスとは簡単に言うと、グラウンドに白線を引くやつをプログラムを組んで画面上で動かすといったモジュールです。
以下では実際にソースコードを用いて説明をします。
2.コードと解説と実行結果
Python
from turtle import * # ライブラリのインポート
shape("turtle") # 動いてもらう図形の指定
col = ["#fce2c4","white","red","black"] #使用する色を配列に入れておく
color(col[0]) # 色の指定
begin_fill() # end_fill()とセット
circle(100) # 顔面生成 : 半径100の円を描く
end_fill() # 塗る
penup() # endup()までペンを浮かす
x = -120 # よく使う数字を変数として作っておく
y = 100
k = 60
goto(x, y) # x,yの座標に移動
shape("square") # 亀を正方形に変える
for i in range(3): # 顔面の丸3つとテカリを描く
fd(k) # kだけ前方へ進行
sety(k) # 円を描くための位置に移動
color(col[2]) # 色を赤にする
pendown() # ペン先を地に付ける
begin_fill() # end_fill()とセット
circle(k / 2) # 円を描く
end_fill() # 塗る
penup() # ペン浮遊
sety(y) # y座標に移動
color(col[1]) # 白色を指定
stamp() # 図形型のスタンプを押す
x += k # x座標をおおきくする
goto(x, y) # x, yに移動
goto(k, k) # 60, 60に移動
color(col[3]) # 黒色を指定
pendown() # ペン浮遊終わり
right(135) # 右向きに135度回転させる
circle(-85, 90) # 口生成 : 半径85(-は時計回りに生成のため)、角度θは90の円を生成
penup() # ペンを浮かす
goto(-30, 135) # -30、135に移動
setheading(90) # 画面上(北)向きに方向を向ける
shape("circle") # 図形を円に変える
shapesize(1, 1.5, 1) # (進行方向に直行した向きに伸縮するための係数、 進行方向への伸縮係数、 輪郭の幅)
stamp() # 右目生成 : 図形型のスタンプを押す
setx(30) # x = 30に移動
stamp() # 左目生成 : 図形型のスタンプを押す
goto(10, 160) # 10, 160に移動
right(10) # 右向きに10度回転する
pendown() # ペンを地に付ける
circle(-20, 180) # 左眉毛生成 : 半径20(-は時計回りに生成のため)、角度θは180の円を生成
penup() # ペン浮遊
goto(-10, 160) # -10, 160へ移動
right(160) # 右向きに160度回転させる
pendown() # ペン浮遊終了
circle(20, 180) # 右眉毛生成 : 半径20、角度θは180の円を生成
shape("turtle") # 図形の形を亀に変更(かわいいので)
shapesize(1, 1, 1) # 亀の整形
penup() # ペンを浮かす
goto(120, 0) # 120, 0に移動
write("絆が、備えになる。.//\JA共済", True, "right", (24)) # 物足りなさの補い
done() # おしまい(これがないと生成終了後画面が消えるので必要)
3. おしまい
M-1見てたらアンパンマン一回分しか描けませんでした。
亀が動いて図を描いてくれるのを見ているだけで結構楽しいので一度実行してみてください。VSCで実行する場合は右上の実行ボタンのRun Python Fileで実行できると思います。当然ですが、わざわざプログラムを組んで実行しなくても普通に絵を描く方がいいと思います。ので、興味のある方はご自分で調べてください。
最後まで見てくれてありがとうございました。