【Python】turtleグラフィックスでお絵かき入門

Pythonの応用
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

Pythonにはタートルグラフィックスというものがあり、プログラミングを子供向けに紹介するのによく使われているもので、Pythonの入門書でも扱われているものがあります。

画面に表示される亀の形をしたポイントを、プログラミングで動きを指定して動かすことで、図形などを描いて行きます。

ここでは、このturtleモジュールを使って、簡単かグラフィックスを描いてみましょう。

スポンサーリンク

turtleで図形を描いてみる

turtleを使ってPythonで図を描画するには、turtleモジュールをインポートしてつかいます。

turtleの機能をここで全部扱うには無理があるので、詳細は公式ドキュメントを見てもらう必要があります。ここではどんな動きをするのかその触りだけ見て行こうと思います。

まず線を引くにはforward()関数に引数で進む距離を与えて実行します。

100進む線を引くコードになっています。ターミナルのシェルでPythonを使っている場合はこのforward()まででもいいです。

Pythonファイルにコードを書いて実行する場合は、スクリーンイベントを利用する関数done()を記述します。

これを実行すると別ウィンドウで描画されます。

右に直線が引かれています。

この線を使って、正三角形を描くとすると、この線の終点から後2つ線を描く必要があります。この直線の方向の終点から左に120度回転して同じ距離を進み、そこから再度120度左に回転して同じ距離を進むと正三角形が描けるはずです。

左に回転する関数はleft()となり、これに角度を引数として与えて描きます。

上のコードに加えると次のようになります。

実行するとこうなります。

他にも、丸を書いたり、線に色をつけたり、線の太さを変えたりすることができます。

このコードに続けて、color()を使って線を赤色にし、pensize()で線の太さを変え、circle()で半径100を与えて記述しています。left(30)も加えて、先ほど描いた正三角形が描く円に接するようにコードを次のように書いてみました。

実行するとこうなります。

公式ドキュメントにある関数を使って、色々と描いてみるのもいいでしょう。図の位置関係などを理解する練習にもなります。

コードを書き換えてみよう!

このコードを使ってもうちょっと遊んでみます。

今度は先に描画を示します。

先ほどのコードと関数で書き換えることができますので、ちょっとやってみてください。

出発点を軸に正三角形を書くのは同じです。回転させながら6回正三角形を書きます。

そして最後の正三角形を書き終えて円で囲むにはどこへ移動させればいいのかを考えます。

色々、描き方はあると思いますが、とりあえずこんなコードを書いてみました。

6回正三角形を繰り返して書くところをfor文でまとめてみました。他にも描き方のコードは考えられますので色々やってみてください。

イデのゲージを描いてみよう!

ではもう1つ。このマークを描いてみましょう。伝説巨人イデオンに出てくるイデのゲージの印ですね。

これ、直線の長さを計算するのにルート計算が必要になるので、そこを手計算すればこれまでの関数だけでもコードを書くことはできますが、どこまで桁数を使うかで精度が変わるので、ここはmathモジュールをインポートして計算に使ってみました。

スマートな描き方では無いですが、力技で強引にコードを書くとこうなりました。

このコードでこれまで使って無いものと言えば、mathモジュールとbgcolor() での背景の色付け、 hideturtle()でペン先の表示を消したというところですね。

何も考えずに、とりあえず作ってみた感じ。もっとスマートなコードでも書けると思うので、いろいろと試してみてください。なんかイデオンをDVDで見たくなってきました(笑)

スポンサーリンク

turtleで再帰プログラミングのグラフィックに挑戦

先ほど、繰り返しの描画をしてみましたが、試しに四角を描いて回転しながら徐々に大きくなるという再帰性のあるプログラミングを書いてみました。

nは繰り返す回数、lengthは最初の長さ、angleは角度として初期値を与えています。

speed()は描画のスピードで0が一番早いモードになっています。color()で色を指定して、begin_fill()、end_fill()でコードを囲むことで塗りつぶしています。

n回繰り返すわけですが、その中で、range(4)で線を描いて90度回転させて四角を描き、angleで角度を変更して、length*1.03で長さを変更し、再度四角を描くということになっています。

実行すると次のような図が描けます。

線の長さや角度、回数などを変えるとまた違った図柄になります。

ネットにはいろんな描き方が紹介されていますし、Pythonのturtleno中にもデモスクリプトがあります。

スポンサーリンク

turtleのデモスクリプトを見る

turtleのデモスクリプトは付属のデモビューアを使用して実行および表示することができます。

デモビューアはターミナルシェルから次のコマンドで見ることができます。

次のビューワーが起動します。

メニューのExamplesからfractalcurvesというものを選んで実行してみましょう。ちょっと見えにくいですが、ビューワーの下側にSTART、STOP、CLEARとあるので、STARTで実行します。

左側にコードが表示されるので、コードを読んでみるのもいいでしょう。STARTをクリックすると、右側のスペースに描画が始まります。

完成図柄はこちらになります。

他のデモもExamplesから選んで色々と見てみましょう。

スポンサーリンク

まとめ

Pythonにはタートルグラフィックスというものがあり、turtleモジュールをインポートして簡単に図形を描いて楽しむことができます。

turtleは、プログラミングを子供向けに紹介するのにもよく使われています。

なお、ここではお絵描きグラフィックでしたが、GUIアプリを作るtkinterパッケージにも目を向けてみるのもいいと思います。

【Python】tkinterの使い方入門。計算機GUIアプリの作成に挑戦!
Pythonのtkinterを扱います。tkinterはUnixプラットフォームやWindows上で利用できるTk GUIツールキットをPythonで使うためのインタフェースです。ここでは試しに簡単な計算機GUIアプリを作ってみます。

色々触ってみることで、プログラミングでやっていることの理解の助けになります。サンプルコードなどを読み解いたり、コードのパラメーターを変更するなどしてみるのも有益だと思います。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

Pythonの応用
スポンサーリンク
CodeGraffitiをフォローする

とにかく進め!Pythonプログラミング入門 〜 コードグラフィティ
タイトルとURLをコピーしました