キャンバスに図形を描く

各種の図形を描くときは、canvasと云うwidget(部品)を使うのが常套手段です。

文字・直線・曲線などを表すwidgetの主なものは次のようなものです。 これだけ知っていればゲーム用キャラクターも描けるかも。

まず次のウィンドー作成codeは決まり文句

import tkinter as tk

root = tk.Tk()
root.title(“キャンバスに図形を描く”)
root.geometry(“600×600”)

###############

#ウインドー内に三つのキャンバスを準備する(一つ目)
cvs1 = tk.Canvas(root, width=200, height=600, bg=”light yellow”)
cvs1.place(x=0, y=0)

 

#ウインドー内に三つのキャンバスを準備する (二つ目)
cvs2 = tk.Canvas(root, width=200, height=600, bg=”lavenderblush”)
cvs2.place(x=200, y=0)

 

#ウインドー内に三つのキャンバスを準備する (三つ目)
cvs3 = tk.Canvas(root, width=200, height=600, bg=”honeydew”)
cvs3.place(x=400, y=0)

これから描画用パーツを張り付けます。

#①文字列の表示
cvs1.create_text(60, 50, text=”Python”, angle=45, fill=”red”, font=(“Times New Roman”, 24))

 

#②直線を引く
cvs1.create_line(30, 150, 70, 150, fill=”navy”, width=5)

 

#③、④曲線を引く
cvs1.create_line(80, 250, 30, 280, 180, 310, 150, 330, width=2, fill=”blue”)
cvs1.create_line(80, 420, 30, 450, 180, 480, 150, 510, width=2, fill=”red”, smooth=True) #上の曲線をスムースにした場合

 

#⑤⑥矩形を描く
cvs2.create_rectangle(40, 40, 160, 100, fill=”pink”)
cvs2.create_rectangle(60, 140, 120, 260, fill=”palegreen”, outline=”red”, width=5)

 

#⑦⑧楕円を描く 
cvs2.create_oval(50-30, 400-30, 150+30, 400+30, fill=”silver”, outline=”purple”) #縁あり
cvs2.create_oval(50-30, 500-30, 150+30, 500+30, fill=”cyan”, width=0) #縁無し
cvs2.create_oval(50, 500, 150, 400) #x0 y0, x1 y1の順序、間にある円はおまけ



#⑨三角形を描く
cvs3.create_polygon(100, 50, 50, 100, 150, 100, fill=”magenta”, outline=”black”,width=5)

 

#⑩多角形を描く
cvs3.create_arc(100-50, 200-50, 100+50, 200+50, fill=”yellow”, start=30, extent=320)

 

#⑪多角形を描く
cvs3.create_arc(50-50, 350-50, 100+50, 400+50, fill=”gold”, start=0, extent=120, style=tk.CHORD)

 

#⑫多角形を描く
#cvs3.create_arc(50-50, 450-50, 50+50, 450+50, outline=”orange”, with=5, start=0, extent=120, style=tk.ARC)
cvs3.create_arc(0, 450, 150, 600, outline=”orange”, width=5, start=0, extent=120, style=tk.ARC)


root.mainloop()

 

次のように描写されます。

 

 

 

 

 

 

Python別館
Python検定試験準備 Q37

Python検定試験と云うのがあるらしいと別項に上げましたが、学習して損することは無いので始めて見ま …

Python小学館
リストボックスから選択する

アプリを作るときによくリストボックスから選択したい場合がよく有ります。 忘れがちなのでここ …

Python小学館
ウイジェット ラベルの徹底的検証 ③

傘寿で始めたPython ですが毎日少しずつ進歩しております(その積り)。 でも覚えるより忘れる方が …