今回はpython(パイソン)でCG(コンピュータグラフィック)を作成してみたいと思います。
CGと言っても簡単なお絵かきのようなものなので安心してください。プログラミング言語を使って
コンピューターに絵を描かせるイメージですね。
まずはこれをみてください。
pythonではこのような綺麗な図形を描くことができます。
それでは実際にCGを書いてみましょう。
pythonでは亀が絵を描く!?
pythonでCGを描くにはturtle(タートル)(カメ)というモジュールを利用します。
カメにペンを持たせてプログラムで線を引く方向を指示することで図形が表示されていきます。
まずは下のコードを入力して実行してみましょう。
1 2 3 |
from turtle import * forward(200) done() |
上のコードはforward(200)と書かれています。つまり「前に200px(ぴくせる)進め」という命令が
書かれています。賢いカメですよ。そしてめっちゃまっすぐ歩けるカメです。
そんなカメを200px歩かせると次のような図が表示されます。
直感的でわかりやすいですね。
線を引くだけでは複雑な図形を描くことは難しいですよね。
タートルモジュールにはforwardだけでなく、様々な命令があります。
それでは、次のプログラムを実行してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
from turtle import * screensize(canvwidth=100,canvheight=100) fillcolor("yellow") #前に200進む forward(200) #右に90度曲がる right(90) #前に100進む forward(100) #左に45度曲がる left(45) #前に200進む forward(200) #ペンをあげる up() #中心に戻る home() #ペンをおろす down() #ここから塗りつぶす begin_fill() #縁を描く circle(80) #ぬりつびしを完了する end_fill() forward(-200) right(-90) forward(-100) left(-45) forward(-200) done() |
実行すると次のように動きます。
アニメーションにしたため、矢印型でタートルの姿が線に残っていますが、実際はこのような画像が出来上がります。
これなんだと思います?
もちろんわかりましたよね。
そうです、みんな大好きな
「逆さまの茶碗に乗せたピンポン玉」です。
嘘です、特に意味はないのですが、左右に曲がれること、円がかけることを
表したくてこのような図になりました。
こんな意味のわからない絵もかけちゃうのがタートルのすごいとこです。
それだけではないんです!
タートルはプログラミング言語、pythonのモジュールです。
もちろん、pythonの繰り返し文や条件分岐の文法も利用することができます。
pythonの構文を用いることで、より複雑な図形を描くことが可能です。
それでは次のプログラムをみてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from turtle import * speed("fastest") #ペンをあげる up() #上に150px移動する sety(150) #ペンをおろす down() #亀を非表示にする hideturtle() #drawLineを定義 def drawLine(): #7回繰り返す for i in range(7): #15*iの分前に移動する forward(15*i) #30度右に回転する right(30) #60回繰り返す for i in range(60): #drawLineを実行する drawLine() #右に36度回転する right(36) |
実行結果
複雑な模様が描かれますが、実際は同じ図形を少しだけずらして繰り返し表示しているだけです!
なんかずっとみてられます!そのうち図形の向こう側があなたにも見えてくるかもしれません。
python初心者にはturtleでCG作成がオススメ!
実はturtleモジュールは自分も知らなくて、pythonを学んでいる方から
「こんなのあるよ」と教えていただきました。
最初は「線を引くだけだしそんなに面白くないだろう」と思っていましたが
少しいじり始めると軽く1時間とかすぎてたりするんです。
数字をちょっと変えると全然違う図形になるので、「次はどんな形になるかな」
とワクワクするんです。
図形がパッ!と表示されるんじゃなくて、徐々に出来上がっていく感じがいいんです!
プログラムを学習するときは多くの人が「HelloWorld」を表示して
地道に文字列を表示したり四則演算をしながらプログラムを覚えてくのですが、
小さなお子さんだったり、プログラムにあまり興味を持っていない方の場合、モチベーションが
保てないと言ったことがあります。
その点turtleでは派手な動きで結果が表示されるので、「ここを変えたらどうなるのかな?」
とエラーを恐れずにコードを書いていくことができるようになります。
turtleに関する記事はWeb上に多くありますが、公式ドキュメントも読みやすいので
python初学者の方!是非一度試してみてください!それでは、また。