現在調査中です.
...
......
つまらない茶番ダメ、絶対
はじめに
皆さんこんにちは、いかがお過ごしでしょうか。某森で無人島開発に勤しんでいるIWANKです。
さて、新歓ブログリレーもいよいよ10日目ですね!
このブログリレー、一日に二つ更新する日もあったりと更新ペースがかなり意欲的ですよね。みんなちゃんとかいててすごいなあ(小並感)
なので私も少しかいてみようとおもいます。絵を。
しかし私には画力がありません。試しにスライムを描いてみましょう。
描いてみました。なんだか精神が不安定になってきますね......。
しかしここで朗報です。こんな絵しか描けない人でも、プログラミングがほんの少しできたらかっちょいい幾何学的模様が描けちゃうみたいなんです。
それが タートルグラフィックス です。
ということで、今回はタートルグラフィックスでなんかそれっぽいかっちょいい絵を描こうと思います。
タートルグラフィックスとは?
まずペンを持ったカメがいるとします。
カメに「10ピクセル分だけ動いて」や「90度回転して」といった簡単な命令をしてやることでカメが動き、その動いた軌跡が線として描かれます。ペンを持ち上げることもできるので、もちろん一筆書きでないものも描くことができます。
このような命令をプログラミングし、カメに図形を描かせようというLOGO言語によるものです。
(https://en.wikipedia.org/wiki/Turtle_graphics)
今回はPythonのTurtleモジュールを利用してタートルグラフィックスを扱います。
なお、環境構築やPythonの基本文法、およびTurtleモジュールで扱える主な関数については、プログラミング演習 Python 2019が参考になるかと思います。
実際に描こう
それでは早速描いていきましょう。
まずはカメに正三角形を描いてもらいましょうか。
from turtle import*
for i in range(3): #以下の命令を3回ループさせます
forward(100) #前に100進みます
left(120) #左に120度回転します
done()
お次は太めの円周がオレンジ、中が黄色の円を描いてみましょう。こちらも簡単に描けます。
from turtle import*
pensize(5) #ペンの太さを5に設定します(デフォルトは1)
color("orange", "yellow") #ペンの色をオレンジに、描かれた閉領域内を塗りつぶす色を黄色にそれぞれ設定します
begin_fill()
circle(100) #半径100の円を描きます
end_fill()
done()
基本的な図形はこんな感じで描けますね!それでは少し複雑な模様を描いてみましょう。
from turtle import*
pencolor("orange") #ペンの色をオレンジに設定します
length = 15 #初期の正方形の一辺の長さを15にします
speed(0) #描写速度を上げます
for i in range(100): #以下の命令を100回ループさせます
for i in range(4): #一辺の長さがlengthの正方形を描きます
forward(length)
left(90)
left(15) #左に15度回転します
length *= 1.03 #正方形の一辺の長さを1.03倍する
done()
これは正方形を15度ずつ回転させながら、一辺の長さを1.03倍拡大するのを100回繰り返してるだけです。
結構簡潔なプログラムでもそれなりに複雑な図形が描けますね!
より複雑な図形を描きたい!見てみたい!という方は、フラクタル図形なんかで検索をかけてみると面白いかもです。
さいごに
いかがだったでしょうか。できるだけ易しめな図形を描いたつもりです。とあるフラクタル図形を描こうとしてたら時間が足りなかったなんて言えない
こんな駄文でもタートルグラフィックスを知るきっかけになってくれると幸いですが、正直そんないきなりコード見せられてもよくわからんわきっしょwwwという感想を抱いた方もいるかと思います。
実際私も、新歓ブログリレーに大した説明もなしにコード載せるの良くないかもなあとか思ったんですけど、うるせ~~~~~しらね~~~~~~~の精神で書いちゃいました!ヒヤシンスあげるので許してください。
とにもかくにも、タートルグラフィックスで遊ぶのはけっこう楽しいですよ。
実行結果が描かれるので、自分がコードのどこの部分をいじってるのかが視覚的にわかりやすく、プログラミングをしたことがない人、慣れていない人に特にオススメです。( 先のリンクで勉強しながらやってみましょう )
また、少しプログラミングに慣れてきた(というよりタートルグラフィックスで遊ぶのに慣れてきたらという方が適切かもしれませんが)ときに先述のコードを見ると色々理解できて面白いかもしれないです。ぜひやってみてね!