基於Turtle製作色彩繽紛的節日禮花

這幾天打算搞點兒有意思的東西,搜索一番發現了一個名爲Turtle的python庫,它是python繪製圖像的函數庫;其原理就是假設有一隻小烏龜,從座標軸原點出發,根據我們設置的一組指令,在整個座標系平面內爬行,從而它的爬行路徑便繪製出了一系列圖形。

關於這個函數庫大家可以去官網查看說明:https://docs.python.org/3/library/turtle.html?highlight=turtle

廢話不多說,我們今天將會基於該庫來製作一個色彩繽紛的節日禮花,直接上代碼,註釋已經講解的很清楚~~~

# # -*- coding:utf-8 -*-
import turtle
import random

turtle.tracer(0, 0)   #加速繪製圖形
scr = turtle.Screen()  #生成一個屏幕對象
scr.colormode(255)     #設置顏色模式爲RGB整數模式
scr.bgcolor("black")  #設置屏幕背景顏色爲黑色


tur = turtle.Turtle()  #生成一個畫筆對象
tur.speed(10)  #設置畫筆移動速度,範圍爲0~10之間,取整數,數字越大表明速度越快
tur.goto(0,0)  #將畫筆移動到座標爲(0,0)的位置
tur.pensize(2) #設置畫筆的寬度爲2
tur.ht()   #隱藏畫筆,使得做複雜繪圖時加快速度
for i in range(500):
    # turtle.color()方法返回或設置pencolor和fillcolor,允許多種輸入格式,包括0到3個參數
    #randrange() 方法返回指定遞增基數集合中的一個隨機數,基數缺省值爲1
    tur.color(random.randrange(256),random.randrange(256),random.randrange(256))
    #random.gauss(a,b) 表示均值爲a且標準偏差爲b的高斯分佈
    #round( x [, n]  )方法返回浮點數x的四捨五入值,n爲小數點後有效位數
    tur.goto(round(random.gauss(0,150),0),round(random.gauss(0,150),0))
    x = tur.xcor()  #返回畫筆的x座標
    y = tur.ycor()  #返回畫筆的y座標
    for j in range(25):
                z = round(random.gauss(0,5), 0)
                a = round(random.gauss(0,5), 0)
                tur.color(random.randrange(256),random.randrange(256),random.randrange(256))
                tur.goto(x + z, y + a)  #將畫筆移動到對應座標位置
    tur.goto(z,a)  #將畫筆移動到座標爲(z,a)的位置
turtle.update()  #執行TurtleScreen更新,在跟蹤器tracer關閉時調用。
scr.exitonclick()  #鼠標點擊屏幕時退出(通過綁定bye()方法實現)

看着代碼很多,其實關鍵的方法只有幾個,重要的是邏輯,我們要把枯燥的方法巧妙地拼接起來,進而構造出我們的目標圖像,在這其中有幾個方法還是說一下吧:

1.turtle.tracer方法

 

我們設置了(0,0),既不需要延遲,如果大家對這個感興趣可以設置其他值試驗一下~~

2.random.randrange方法

其全貌爲random.randrange ([start,] stop [,step]):
  • start -- 指定範圍內的開始值,包含在範圍內
  • stop -- 指定範圍內的結束值,不包含在範圍內
  • step -- 指定遞增基數

其他的方法基本上在註釋中都已說明,詳細信息可以查詢官網說明,我們後續還會進一步探究……

看下效果吧:

———————如果本篇內容對你有一點點幫助,請點個贊或者收藏關注一下,讓我們一起努力————————

                                  友情提示

×××××××××××點贊——評論——收藏均在右上角區域×××××××××××

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章