Python的藝術玩法——“孔雀開屏”篇

本文用Python實現一個“孔雀開屏”的效果,Python也可以這麼玩。下面是源碼,註釋裏面的是不同畫面的執行代碼。

from turtle import *
from random import *
from math import *
myColor=['green', 'yellow','red','purple', 'blue','green', 'orange', 'blue']  #孔雀每環顏色
myR=[180,130,90,60,40,30,20,10]  # 孔雀每環半徑
myRb=[60, 50,40,30,25,20,15,10]
    
def init():  #初始化
    screensize(500,500)
    speed(0)
    penup()
def drawcircle(c,r): # 畫圓圈
    fillcolor(c)
    begin_fill()
    circle(r)
    end_fill()
def peacock(): # 畫孔雀
    pendown()
    for i in range(8):
        drawcircle(myColor[i],myR[i])
    penup()
def controlR(x):#調整半徑比例
    for i in range(len(myR)):
        myR[i]=myR[i]*x
def run(n,bigR):  #最終運行函數,bigR爲組合的大圖形半徑
#注意:right()left()函數按角度計算,三角函數按照弧度計算
    angle=2*pi/n
    right(90+360/n)
    for i in range(n):
        x=cos(angle*i)*bigR
        y=sin(angle*i)*bigR
        goto(x,y)
        left(360/n)
        peacock()

def run2(n,bigR):  #與run()區別:這裏是半圓
    angle=pi/n
    right(90+180/n)
    for i in range(n):
        x=cos(angle*i)*bigR
        y=sin(angle*i)*bigR
        goto(x,y)
        left(180/n)
        peacock()
def run2(n,bigR,scale):  #最終運行函數,bigR爲組合的大圖形半徑,scale代表弧度與2pi的比例
#注意:right()left()函數按角度計算,三角函數按照弧度計算
    angle=2*pi/n*scale
    right(90+360/n*scale)
    for i in range(n):
        x=cos(angle*i)*bigR
        y=sin(angle*i)*bigR
        goto(x,y)
        left(360/n*scale)
        peacock()

'''
#執行效果1 
init()
goto(0,-160)
peacock()
controlR(0.4)
run(10,200)

#執行效果2 
init()
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))
controlR(0.5)
run(8,160)


#執行效果3
init()
controlR(0.1)
run(10,50)
init()
controlR(4)
left(150)
run(10,150)
goto(0,-350)
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))
'''
#執行效果4 
init()
goto(0,-200)
peacock()
controlR(0.4)
run2(10,200,0.55)
goto(0,-320)
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))

效果一

效果1

代碼如下:

#執行效果1 
init()
goto(0,-160)
peacock()
controlR(0.4)
run(10,200)

效果二

效果2.jpg

代碼如下:

#執行效果2 
init()
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))
controlR(0.5)
run(8,160)

效果三

效果3

代碼如下:

#執行效果3
init()
controlR(0.1)
run(10,50)
init()
controlR(4)
left(150)
run(10,150)
goto(0,-350)
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))

效果四

效果4

代碼如下:

#執行效果4 
init()
goto(0,-200)
peacock()
controlR(0.4)
run2(10,200,0.55)
goto(0,-320)
write('PEACOCK',True, align="center",font=('Arial',30,'normal'))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章