一、為什麼選擇用Python畫海綿寶寶
Python是一種高級編程語言,具有可讀性和交互性強、易於學習、安全性和可靠性高等優點,因此在實現各種各樣的創意和藝術項目時非常適合使用。而海綿寶寶作為一個可愛的形象,在網路文化中有著廣泛的應用,因此我們選擇使用Python來繪製海綿寶寶。
繪圖的基礎是圖形庫。Python有很多流行的圖形庫,如Tkinter、PyQt、wxPython等,這些庫均提供了高效簡便的繪製功能。其中,Tkinter是Python的一個內置庫,因此我們選擇使用Tkinter庫來實現繪製海綿寶寶。
二、Tkinter庫中圖形繪製的基礎知識
首先,我們需要導入Tkinter庫和Canvas類:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=800, height=600)
canvas.pack() # 可理解為將此canvas放入root中
其中,root是屏幕上的主窗口,canvas是在root上建立的一個畫布,用於繪圖。
接下來,我們需要使用Canvas類的一些方法來繪圖。例如,繪製圓形的代碼如下:
x, y = 100, 100 # 圓心的坐標(100,100)
r = 50 # 半徑50
canvas.create_oval(x-r, y-r, x+r, y+r, fill='yellow') # 在canvas中繪製圓形
其中,create_oval()方法接受四個參數,分別是圓形邊框的左上角和右下角的坐標(即方框),以及填充顏色。
三、繪製海綿寶寶
1、繪製海綿寶寶的身體
首先,我們來繪製海綿寶寶的身體。身體是一個圓形,通過create_oval()方法繪製。代碼如下:
x, y = 400, 300 # 圓心的坐標(400,300)
r = 150 # 半徑150
canvas.create_oval(x-r, y-r, x+r, y+r, fill='yellow', width=0) # 在canvas中繪製圓形
身體繪製完成後,我們將注意力轉向海綿寶寶的頭部。
2、繪製海綿寶寶的頭部
海綿寶寶的頭部是一個大方框,上面有兩個凸起的耳朵,還有兩隻大眼睛和一個方形的嘴巴。我們以矩形為基礎,繪製多個組成頭部的元素。
2.1 繪製矩形基礎框架
head_x1, head_y1, head_x2, head_y2 = 250, 120, 550, 420 # 頭部矩形框架的坐標
canvas.create_rectangle(head_x1, head_y1, head_x2, head_y2, width=0, fill='yellow') # 繪製頭部矩形
在頭部矩形框架的基礎上,我們將通過添加其他元素來豐富海綿寶寶的表情。
2.2 繪製耳朵
海綿寶寶的頭部上有兩隻耳朵,每個耳朵都是一個圓形。我們將通過create_oval()方法來繪製這兩個耳朵。
ear_r = 40 # 耳朵半徑
canvas.create_oval(head_x1+60-ear_r, head_y1-ear_r-20, head_x1+60+ear_r, head_y1+20-ear_r, fill='brown', width=0) # 繪製左耳
canvas.create_oval(head_x2-60-ear_r, head_y1-ear_r-20, head_x2-60+ear_r, head_y1+20-ear_r, fill='brown', width=0) # 繪製右耳
2.3 繪製眼睛和嘴巴
繪製海綿寶寶的眼睛和嘴巴需要我們使用多個Canvas類的方法,包括create_oval()、create_arc()和create_polygon()等。具體代碼如下:
# 左眼
eye_left_x = head_x1 + (head_x2 - head_x1) / 4 # 左眼圓心x坐標
eye_y = head_y1 + (head_y2 - head_y1) / 3 # 左眼圓心y坐標
eye_r = 30 # 左眼半徑
canvas.create_oval(eye_left_x-eye_r, eye_y-eye_r, eye_left_x+eye_r, eye_y+eye_r, fill='white') # 繪製白色眼球
canvas.create_oval(eye_left_x-eye_r/2, eye_y-eye_r/2, eye_left_x+eye_r/2, eye_y+eye_r/2, fill='blue') # 繪製藍色瞳孔
# 右眼
eye_right_x = head_x2 - (head_x2 - head_x1) / 4 # 右眼圓心x坐標
canvas.create_oval(eye_right_x-eye_r, eye_y-eye_r, eye_right_x+eye_r, eye_y+eye_r, fill='white') # 繪製白色眼球
canvas.create_oval(eye_right_x-eye_r/2, eye_y-eye_r/2, eye_right_x+eye_r/2, eye_y+eye_r/2, fill='blue') # 繪製藍色瞳孔
# 嘴巴
mouth_x = head_x1 + (head_x2 - head_x1) / 2 # 嘴巴頂點坐標x
mouth_y = head_y2 - (head_y2 - head_y1) / 3 # 嘴巴頂點坐標y
width, height = 80, 60
arc_x1 = mouth_x - width / 2
arc_y1 = mouth_y - height / 2
arc_x2 = mouth_x + width / 2
arc_y2 = mouth_y + height / 2
canvas.create_arc(arc_x1, arc_y1, arc_x2, arc_y2, start=0, extent=-180, style='arc', outline='red', width=5) # 繪製嘴巴
canvas.create_polygon(mouth_x-25, mouth_y, mouth_x+25, mouth_y, mouth_x, mouth_y+20, fill='red') # 在嘴巴位置繪製一塊紅色的舌頭
四、完整代碼示例
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=800, height=600)
canvas.pack()
# 繪製海綿寶寶身體
x, y = 400, 300 # 圓心的坐標(400,300)
r = 150 # 半徑150
canvas.create_oval(x-r, y-r, x+r, y+r, fill='yellow', width=0) # 在canvas中繪製圓形
# 繪製海綿寶寶頭部
head_x1, head_y1, head_x2, head_y2 = 250, 120, 550, 420 # 頭部矩形框架的坐標
canvas.create_rectangle(head_x1, head_y1, head_x2, head_y2, width=0, fill='yellow') # 繪製頭部矩形
# 繪製左耳
ear_r = 40 # 耳朵半徑
canvas.create_oval(head_x1+60-ear_r, head_y1-ear_r-20, head_x1+60+ear_r, head_y1+20-ear_r, fill='brown', width=0) # 繪製左耳
# 繪製右耳
canvas.create_oval(head_x2-60-ear_r, head_y1-ear_r-20, head_x2-60+ear_r, head_y1+20-ear_r, fill='brown', width=0) # 繪製右耳
# 繪製左眼
eye_left_x = head_x1 + (head_x2 - head_x1) / 4 # 左眼圓心x坐標
eye_y = head_y1 + (head_y2 - head_y1) / 3 # 左眼圓心y坐標
eye_r = 30 # 左眼半徑
canvas.create_oval(eye_left_x-eye_r, eye_y-eye_r, eye_left_x+eye_r, eye_y+eye_r, fill='white') # 繪製白色眼球
canvas.create_oval(eye_left_x-eye_r/2, eye_y-eye_r/2, eye_left_x+eye_r/2, eye_y+eye_r/2, fill='blue') # 繪製藍色瞳孔
# 繪製右眼
eye_right_x = head_x2 - (head_x2 - head_x1) / 4 # 右眼圓心x坐標
canvas.create_oval(eye_right_x-eye_r, eye_y-eye_r, eye_right_x+eye_r, eye_y+eye_r, fill='white') # 繪製白色眼球
canvas.create_oval(eye_right_x-eye_r/2, eye_y-eye_r/2, eye_right_x+eye_r/2, eye_y+eye_r/2, fill='blue') # 繪製藍色瞳孔
# 繪製嘴巴
mouth_x = head_x1 + (head_x2 - head_x1) / 2 # 嘴巴頂點坐標x
mouth_y = head_y2 - (head_y2 - head_y1) / 3 # 嘴巴頂點坐標y
width, height = 80, 60
arc_x1 = mouth_x - width / 2
arc_y1 = mouth_y - height / 2
arc_x2 = mouth_x + width / 2
arc_y2 = mouth_y + height / 2
canvas.create_arc(arc_x1, arc_y1, arc_x2, arc_y2, start=0, extent=-180, style='arc', outline='red', width=5) # 繪製嘴巴
canvas.create_polygon(mouth_x-25, mouth_y, mouth_x+25, mouth_y, mouth_x, mouth_y+20, fill='red') # 在嘴巴位置繪製一塊紅色的舌頭
tk.mainloop()
運行代碼,即可得到可愛的海綿寶寶圖案。
本文介紹了Python如何繪製海綿寶寶。藉助於Tkinter庫提供的豐富功能和靈活性,我們可以通過組合簡單的基本形狀來創造出複雜的圖像。希望讀者可以通過此文的介紹對Python圖形編程有更深入的了解。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231895.html