機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【python】【tkinter】【part1】canvasを使って図形を描く

tkintercanvasを使って図形(四角、丸、線、三角)を描く

■はじめに

前回はmatplotlibでグラフを書く方法を紹介しました。

stjun.hatenablog.com

stjun.hatenablog.com

 

ところでこのブログでも何度も紹介しているTkinterにもcanvasという図形を描ける機能があります。part2~3くらいで紹介する予定ですが、canvasを使うと簡単なアニメーションも作ることができます、非常に便利な機能です。

そこで今回、第1回目としてcanvasの概要と簡単な書き方を紹介します。

 

■コード

import tkinter as tk

#ウインドを作成
root=tk.Tk()
root.geometry('400x400')
root.title('canvasの使い方') #図形を壁画するキャンバスをウインド上に作成 canvas=tk.Canvas(root,width=300,height=300,bg="white") canvas.pack() #図形の壁画 square=canvas.create_rectangle(5,5,30,30,fill='red')#四角 circle=canvas.create_oval(40,5,65,30,fill='blue')#丸 line=canvas.create_line(70,15,100,15)#線 polygon=canvas.create_polygon(125,5,110,35,140,35)#三角 root.mainloop()

実行すると以下の画像が表示されます。

f:id:stjun:20191027220651p:plain

 

■買って良かったもの紹介

 今回紹介したmatplotlib以外にもpandasやBokehなどのモジュールの使い方が書かれている本です。

公式リファレンス等もありますし、ネットで探せばいくらでもモジュールの使い方・書き方は見つかりますが、一冊くらいこのような本を手元に持っておくと便利です。

 

■説明

まず図形を描くには、図形を描くキャンバスを作らないといけません。

それが次になります。

#図形を壁画するキャンバスをウインド上に作成
canvas=tk.Canvas(root,width=300,height=300,bg="white")
canvas.pack()

次にcanvasの上に図形を描いていきます。

#図形の壁画
square=canvas.create_rectangle(5,5,30,30,fill='red')#四角
circle=canvas.create_oval(40,5,65,30,fill='blue')#丸
line=canvas.create_line(70,15,100,15)#線
polygon=canvas.create_polygon(125,5,110,35,140,35)#三角

 

1行目のsquareですが、create_rectangle(5,5,30,30,fill='red')の5,5は四角形の左上の角の座標、30,30は四角形の右下の角の座標になります。

2行目のcircleは、左上の角の座標(40,5)から右下の角の座標(65,30)で描かれる四角形に内接する円を書きます。

例えば確認のために、次のように座標情報が同じ四角と円を描くと以下の画面が現れます。

square=canvas.create_rectangle(5,5,200,200,fill='red')#四角
circle=canvas.create_oval(5,5,200,200,fill='blue')#丸

f:id:stjun:20191027222007p:plain

以上より、円が四角の内接円であることが分かります。

3行目のlineは同様に、始点と終点の座標を表しています。

4行目のpolygon=canvas.create_polygon(125,5,110,35,140,35)#三角

については三角形の各頂点の座標「(125,5)(110,35)(140,35)」を表しています。ここで座標を5つ、6つなど設定すれば、5角形や6角形などの多角形も描くことができます。

 

■おわりに

いかがだったでしょうか。次回は図形を動かす方法を紹介します。