2018.10.09スポンサーリンクPythonにはタートルグラフィックスというものがあり、プログラミングを子供向けに紹介するのによく使われているもので、Pythonの入門書でも扱われているものがあります。画面に表示される亀の形をしたポイントを、プログラミングで動きを指定して動かすことで、図形などを描いて行きます。ここでは、このturtleモジュールを使って、簡単かグラフィックスを描いてみましょう。目次turtleで図形を描いてみるturtleで再帰プログラミングのグラフィックに挑戦turtleのデモスクリプトを見るまとめスポンサーリンクturtleで図形を描いてみるturtleを使ってPythonで図を描画するには、turtleモジュールをインポートしてつかいます。*turtleの機能をここで全部扱うには無理があるので、詳細は公式ドキュメントを見てもらう必要があります。ここではどんな動きをするのかその触りだけ見て行こうと思います。線を引くにはforward()関数に引数で進む距離を与えて実行します。*forward(100)done()100進む線を引くコードになっています。ターミナルのシェルでPythonを使っている場合はこのforward()まででもいいです。Pythonファイルにコードを書いて実行する場合は、スクリーンイベントを利用する関数done()を記述します。これを実行すると別ウィンドウで描画されます。右に直線が引かれています。この線を使って、正三角形を描くとすると、この線の終点から後2つ線を描く必要があります。この直線の方向の終点から左に120度回転して同じ距離を進み、そこから再度120度左に回転して同じ距離を進むと正三角形が描けるはずです。左に回転する関数はleft()となり、これに角度を引数として与えて描きます。上のコードに加えると次のようになります。*forward(100)left(120)forward(120)left(120)forward(100)done()実行するとこうなります。他にも、丸を書いたり、線に色をつけたり、線の太さを変えたりすることができます。このコードに続けて、color()を使って線を赤色にし、pensize()で線の太さを変え、circle()で半径100を与えて記述しています。left(30)も加えて、先ほど描いた正三角形が描く円に接するようにコードを次のように書いてみました。*forward(100)left(120)forward(100)left(120)forward(100)color('red')pensize(10)left(30)circle(100)done()実行するとこうなります。公式ドキュメントにある関数を使って、色々と描いてみるのもいいでしょう。図の位置関係などを理解する練習にもなります。コードを書き換えてみよう!このコードを使ってもうちょっと遊んでみます。今度は先に描画を示します。先ほどのコードと関数で書き換えることができますので、ちょっとやってみてください。出発点を軸に正三角形を書くのは同じです。回転させながら6回正三角形を書きます。最後の正三角形を書き終えて円で囲むにはどこへ移動させればいいのかを考えます。描き方はあると思いますが、とりあえずこんなコードを書いてみました。range(6):forward(100)left(120)forward(100)left(120)forward(100)left(180)forward(100)color('red')pensize(10)left(90)circle(100)done()6回正三角形を繰り返して書くところをfor文でまとめてみました。他にも描き方のコードは考えられますので色々やってみてください。イデのゲージを描いてみよう!ではもう1つ。このマークを描いてみましょう。伝説巨人イデオンに出てくるイデのゲージの印ですね。これ、直線の長さを計算するのにルート計算が必要になるので、そこを手計算すればこれまでの関数だけでもコードを書くことはできますが、どこまで桁数を使うかで精度が変わるので、ここはmathモジュールをインポートして計算に使ってみました。スマートな描き方では無いですが、力技で強引にコードを書くとこうなりました。hideturtle()でペン先の表示を消したというところですね。何も考えずに、とりあえず作ってみた感じ。スマートなコードでも書けると思うので、いろいろと試してみてください。先ほど、繰り返しの描画をしてみましたが、試しに四角を描いて回転しながら徐々に大きくなるという再帰性のあるプログラミングを書いてみました。length*1.03end_fill()done()nは繰り返す回数、lengthは最初の長さ、angleは角度として初期値を与えています。speed()は描画のスピードで0が一番早いモードになっています。color()で色を指定して、begin_fill()、end_fill()でコードを囲むことで塗りつぶしています。n回繰り返すわけですが、その中で、range(4)で線を描いて90度回転させて四角を描き、angleで角度を変更して、length*1.03で長さを変更し、再度四角を描くということになっています。実行すると次のような図が描けます。線の長さや角度、回数などを変えるとまた違った図柄になります。ネットにはいろんな描き方が紹介されていますし、Pythonのturtleno中にもデモスクリプトがあります。スポンサーリンクturtleのデモスクリプトを見るturtleのデモスクリプトは付属のデモビューアを使用して実行および表示することができます。デモビューアはターミナルシェルから次のコマンドで見ることができます。turtledemo次のビューワーが起動します。メニューのExamplesからfractalcurvesというものを選んで実行してみましょう。見えにくいですが、ビューワーの下側にSTART、STOP、CLEARとあるので、STARTで実行します。左側にコードが表示されるので、コードを読んでみるのもいいでしょう。STARTをクリックすると、右側のスペースに描画が始まります。完成図柄はこちらになります。他のデモもExamplesから選んで色々と見てみましょう。スポンサーリンクまとめPythonにはタートルグラフィックスというものがあり、turtleモジュールをインポートして簡単に図形を描いて楽しむことができます。turtleは、プログラミングを子供向けに紹介するのにもよく使われています。ここではお絵描きグラフィックでしたが、GUIアプリを作るtkinterパッケージにも目を向けてみるのもいいと思います。【Python】tkinterの使い方入門。計算機GUIアプリの作成に挑戦!Pythonのtkinterを扱います。GUIツールキットをPythonで使うためのインタフェースです。ここでは試しに簡単な計算機GUIアプリを作ってみます。code-graffiti.com2018.10.18色々触ってみることで、プログラミングでやっていることの理解の助けになります。サンプルコードなどを読み解いたり、コードのパラメーターを変更するなどしてみるのも有益だと思います。【Python】ロギングのフィルタで出力するログ記録をフィルタリングPythonを使ったロギングの機能について、ここではフィルタ(filter)を扱います。ロギングのフィルタは、ログ出力をする時に、どのログ記録を出力するかをきめ細かく設定するフィルタリング機能です。パスワードをログ出力したくない時などに利用します。【Python】tempfileモジュールの使い方Pythonの標準ライブラリtempfileモジュールの使い方を見て行きます。実際のファイルやディレクトリの作業ではなくTemporaryFile()、TemporaryDirectory()などを使って一時的に作成し終了後に削除されます。setMouseCallback()Pythonに画像処理ライブラリのOpenCVを使って、マウスの操作で画像を描画する方法をみていきます。マウスイベントにはEVENT_LBUTTONDOWN、EVENT_MOUSEMOVE、EVENT_LBUTTONUPなどがあります。minMaxLoc()OpenCVを使ったPythonでの画像処理について、静止画から物体を認識をするテンプレートマッチングという方法を扱います。これはテンプレートを画像全体に対してスライドさせて重なる領域を比較し、類似度の高い部分に注目して物体を認識します。Detection)を扱います。輪郭検出にはfindContours()で目的に合ったRETRモードと近似を、描画にはdrawContours()を使います。xmlrpcPythonのxmlrpcモジュール使うことで、HTTP経由でクライアント側からサーバー上のメソッドを呼び出す操作をしてみました。ローカルなネットワークで、サーバー側に重たい処理をさせるというような使い方が考えられるもモジュールです。notebookの基本的な使い方。notebookの基本的な使い方。f-stringsスポンサーリンクタイトルとURLをコピーしました。