Python使用turtle畫個小豬佩奇

2021-09-23 08:04:42 字數 4001 閱讀 4482

"""

繪製小豬佩奇

"""from turtle import *

def nose(x,y):

"""畫鼻子"""

# penup()提起畫筆,用於另起乙個地方繪製時用,與pendown()配對使用

penup()

# 將海龜移動到指定的座標

goto(x,y)

pendown()

# 設定海龜的方向(0-東、90-北、180-西、270-南)

# setheading(angle)設定當前朝向為angle角度

setheading(-30)

# begin_fill()填充圖形前,呼叫該方法

begin_fill()

a = 0.4

for i in range(120):

if 0 <= i < 30 or 60 <= i <90:

a = a + 0.08

# 向左轉3度

left(3)

# 向前走

forward(a)

else:

a = a - 0.08

left(3)

forward(a)

end_fill()

penup()

setheading(90)

forward(25)

setheading(0)

forward(10)

pendown()

# 設定畫筆的顏色(紅, 綠, 藍)

pencolor(255, 155, 192)

setheading(10)

begin_fill()

circle(5)

color(160, 82, 45)

end_fill()

penup()

setheading(0)

forward(20)

pendown()

pencolor(255, 155, 192)

setheading(10)

begin_fill()

circle(5)

color(160, 82, 45)

end_fill()

def head(x, y):

"""畫頭"""

color((255, 155, 192), "pink")

penup()

goto(x,y)

setheading(0)

pendown()

begin_fill()

setheading(180)

circle(300, -30)

circle(100, -60)

circle(80, -100)

circle(150, -20)

circle(60, -95)

setheading(161)

circle(-300, 15)

penup()

goto(-100, 100)

pendown()

setheading(-30)

a = 0.4

for i in range(60):

if 0<= i < 30 or 60 <= i < 90:

a = a + 0.08

lt(3) #向左轉3度

fd(a) #向前走a的步長

else:

a = a - 0.08

lt(3)

fd(a)

end_fill()

def ears(x,y):

"""畫耳朵"""

color((255, 155, 192), "pink")

penup()

goto(x, y)

pendown()

begin_fill()

setheading(100)

circle(-50, 50)

circle(-10, 120)

circle(-50, 54)

end_fill()

penup()

setheading(90)

forward(-12)

setheading(0)

forward(30)

pendown()

begin_fill()

setheading(100)

circle(-50, 50)

circle(-10, 120)

circle(-50, 56)

end_fill()

def eyes(x,y):

"""畫眼睛"""

color((255, 155, 192), "white")

penup()

setheading(90)

forward(-20)

setheading(0)

forward(-95)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

color((255, 155, 192), "white")

penup()

seth(90)

forward(-25)

seth(0)

forward(40)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

def cheek(x,y):

"""畫臉頰"""

color((255, 155, 192))

penup()

goto(x,y)

pendown()

setheading(0)

begin_fill()

circle(30)

end_fill()

def mouth(x,y):

"""畫嘴巴"""

color(239, 69, 19)

penup()

goto(x, y)

pendown()

setheading(-80)

circle(30, 40)

circle(40, 80)

def setting():

"""設定引數"""

pensize(4)

# 隱藏海龜

hideturtle()

colormode(255)

color((255, 155, 192), "pink")

setup(840, 500)

speed(10)

def main():

"""主函式"""

setting()

nose(-100, 100)

head(-69, 167)

ears(0, 160)

eyes(0, 140)

cheek(80, 10)

mouth(-20, 30)

done()

if __name__ == '__main__':

main()

執行該py檔案

使用Python的turtle模組畫國旗

python的turtle模組畫國旗主要用到兩個函式 draw rentangle和draw star。至於函式的呼叫就和我們學的c,c 是一樣的。對於turtle畫國旗的程式中,首先是查詢國旗的畫法,才能用程式實現。自己在實現的過程中主要是對turtle.circle 沒有準確掌握,所以花了一些不...

python之turtle畫蚊香

原理 利用turtle繪製圓形,並使圓半徑逐步增加 如下 import turtle turtle.pensize 30 for i in range 30 turtle.circle i 10,60 turtle.done 下面對 解釋 1 import turtle 匯入turtle庫,turt...

使用Python的內建turtle庫畫彩虹

上圖是使用turtle庫繪製的彩虹。程式的關鍵點是將畫筆的顏色漸變,再通過不斷微小的角度轉換繪製成彩虹 計算機中的顏色空間模型是典型的rgb模型,r,g,b分別對應光的三原色,色相是由rgb三個引數共同決定的。那麼如果想通過乙個引數來改變色相,應該使用hsv顏色模型。hsv對於顏色空間的描述更貼近人...