使用Python的pencolor函數(shù)實(shí)現(xiàn)漸變色功能
在學(xué)習(xí)turtle庫繪圖時(shí),改變線條顏色往往可以獲得驚艷的效果。對(duì)于pencolor函數(shù)的使用,簡(jiǎn)單的字符串調(diào)用顏色十分簡(jiǎn)單,但其樂趣遠(yuǎn)不止一個(gè)'red'、一個(gè)'blue'這樣,利用RGB參數(shù)進(jìn)行選色,還可以玩出漸變的花樣
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、RGB簡(jiǎn)介RGB,工業(yè)界的一種顏色標(biāo)準(zhǔn),說白了就是我們現(xiàn)在所能見到的幾乎所有顏色都是紅綠藍(lán)三種顏色按照不同比例混合而成的。
二、RGB在pencolor中的應(yīng)用1.RGB模式pencolor(R, G, B)的RGB模式有兩種,1.0和255,1.0表示輸入的RGB三值范圍為[0,1]的小數(shù),255表示輸入的RGB三值范圍為[0,255]的整數(shù)。注:輸入的RGB值須在該RGB模式的范圍之內(nèi)!RGB三值部分對(duì)應(yīng)顏色如下圖所示(摘于網(wǎng)上,侵權(quán)刪):
RGB模式可以通過colormode()函數(shù)進(jìn)行切換,輸入colormode(1.0)表示1.0模式,輸入colormode(255)表示255模式。
3.玩轉(zhuǎn)漸變色黃色漸變色效果圖:
代碼:
import turtle as tfrom random import *def gradient(): x = randint(-200, 200) y = randint(0, 200) r = 1 g = 1 b = y / 200 t.pencolor(r, g, b) i = randint(3,20) t.penup() t.goto(x, y) t.pendown() t.fd(i) def main(): t.setup(400, 400, 800, 300) t.bgcolor(’black’) t.tracer(0) t.pensize(5) for i in range(100): gradient() t.hideturtle() t.update() main()
注: 黃色對(duì)應(yīng)的RGB整數(shù)值為(255,255,0),對(duì)應(yīng)的RGB小數(shù)值為(1,1,0),所以我們只要確定RG的值不變,改變B的值即可繪出黃色的漸變色!那為什么表示軸坐標(biāo)的y是隨機(jī)變的,還會(huì)出現(xiàn)層次分明的漸變色的效果呢?答:重點(diǎn)就是這個(gè)y了,因?yàn)閎值調(diào)用的就是y值,而y值確定表示在y軸的位置確定的,b值確定表示顏色確定,所以才會(huì)出現(xiàn)層次分明的漸變色!
灰色漸變色效果圖:
代碼:
def gradient(): x = randint(-200, 200) y = randint(0, 200) r = y / 200 g = y / 200 b = y / 200 t.pencolor(r, g, b) i = randint(3,20) t.penup() t.goto(x, y) t.pendown() t.fd(i)
注: 灰色對(duì)應(yīng)的情況為RGB三值相等,由黑色對(duì)應(yīng)的RGB值為(0,0,0),白色對(duì)應(yīng)的RGB值為(255,255,255),可知,我們只要確保RGB三值相等且其值在規(guī)定區(qū)間內(nèi)變化,就能繪出灰色的漸變色!
總結(jié)利用pencolor繪制漸變色有兩步:一是熟悉pencolor函數(shù)的RGB模式怎么使用;二是了解所要繪制顏色對(duì)應(yīng)的RGB值,通過改變RGB值來調(diào)漸變色。
到此這篇關(guān)于使用Python的pencolor函數(shù)實(shí)現(xiàn)漸變色功能的文章就介紹到這了,更多相關(guān)Python pencolor漸變色內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 基于javaweb+jsp實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)2. 如何封裝一個(gè)Ajax函數(shù)3. ASP.NET MVC實(shí)現(xiàn)樹形導(dǎo)航菜單4. 多級(jí)聯(lián)動(dòng)下拉選擇框,動(dòng)態(tài)獲取下一級(jí)5. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲6. Ajax常用封裝庫——Axios的使用7. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))8. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera9. 怎樣打開XML文件?xml文件如何打開?10. Python數(shù)據(jù)分析JupyterNotebook3魔法命令詳解及示例
