使用Python的內建turtle庫畫彩虹
上圖是使用turtle庫繪製的彩虹。程式的關鍵點是將畫筆的顏色漸變,再通過不斷微小的角度轉換繪製成彩虹
計算機中的顏色空間模型是典型的RGB模型,R,G,B分別對應光的三原色,色相是由RGB三個引數共同決定的。
那麼如果想通過一個引數來改變色相,應該使用HSV顏色模型。HSV對於顏色空間的描述更貼近人類感知,HSV顏色模型分別由三個向量H(色相),S(飽和度),V(明度) 所組成,因此可以通過H的漸變而得到對應RGB顏色的漸變值給予畫筆,從而簡單的達到繪製彩虹的目的
那麼有了轉換公式,可以將其實現為python程式碼:
程式主要需要解決的問題解決了,接下來就是描述繪製的過程。彩虹是一個類似圓弧的形狀,那麼要達到上圖的彩虹形狀,就可以將畫筆置於左下角,以這個點畫一個大圓,以至於在視窗中僅能顯示一個圓弧。彩虹形成的漸變過程即不斷畫圓+改變顏色的過程
for迴圈的過程中,顏色漸變效果是通過累加hue(色相)實現的,但要注意的一點是,迴圈的次數與累加量的乘積,也就是總的累加量不可以超過360,否則會報錯,這是因為在HSV顏色模型將顏色描述為圓錐上的點,色相H即使圍繞圓錐中心軸旋轉的角度,因此如果最終的累加量超過的這個上限會導致轉換運算得出的RGB顏色是個錯誤的顏色數值
相關推薦
使用Python的內建turtle庫畫彩虹
上圖是使用turtle庫繪製的彩虹。程式的關鍵點是將畫筆的顏色漸變,再通過不斷微小的角度轉換繪製成彩虹 計算機中的顏色空間模型是典型的RGB模型,R,G,B分別對應光的三原色,色相是由RGB三個引數共同決定的。 那麼如果想通過一個引數來改變色相,應該使用
使用Python畫小豬佩奇(Python內建的turtle庫)
這座標要算多久???尬笑!?turtle(烏龜)庫,在畫布上,預設有一個座標原點為畫布中心的座標軸, 座標原點上有一隻面朝x軸正方向小烏龜. 這裡我們描述小烏龜時使用了兩個詞語:座標原點(位置),面朝x軸正方向(方向), turtle繪圖中, 就是使用位置方向描述小烏龜(畫筆
Urllib庫:python內建的http請求庫
1、四個模組: request error parse robotparser 2、urlopen(url, data, timeout) 傳送請求 get請求無data; post請求有data 3、read() 獲取響應體的內容 4、Handl
用Python Turtle庫畫b站logo(張野 付博林組)
bili goto 一點 fill orm pre rtl scree get 視頻就在這裏 由於不知道很多函數只等自己一點一點的試??嗶哩嗶哩 (゜-゜)つロ 幹杯~ import turtle turtle.speed(6) turtle.screensize
如何用python的turtle庫畫一個玫瑰
#RoseDraw.py import turtle as t # 定義一個曲線繪製函式 def DegreeCurve(n, r, d=1): for i in range(n): t.left(d) t.circle(r, abs(d)) # 初始位
Python 內建模組turtle模組的使用
這是一個可以在畫布上移動畫圖的函式,如果學過計算機語言,這些都是很容易理解的,自己搗鼓著玩吧 import turtle //首先需要引入這個模組 t = turtle.Pen() //佈置畫布 t.forward(200) //讓畫筆往前移動200,這個是有
Python語言程式設計之二--用turtle庫畫圍棋棋盤和正、餘弦函式圖形
這篇筆記依然是在做《Python語言程式設計》第5章迴圈的習題。其中有兩類問題需要記錄下來。 第一是如何畫圍棋棋盤。圍棋棋盤共有19縱19橫。其中,位於(0,0)的星位叫天元,其餘8個星位座標分別是:(-6,6),(0,6),(6,6),(-6,0),(6,0),(-6,-6),(0,-6),(6,-6)。
Python turtle庫畫小豬佩奇
作者github.com/Monster12138/下載安裝Python環境,將原始碼儲存為.py格式原始碼如下:# coding:utf-8import turtle as tt.pensize(4)t.hideturtle()t.colormode(255)t.color
原來python還能這麽用,使用turtle庫畫出漂亮的畫!
shadow 循環 eat blog tps 多重 簡單 程序 成就感 Tuttle庫是python內置庫,今天就利用它畫出各種漂亮的圖! 如何畫出多重五角星? 效果展示如下:是不是很酷呢,下面還有更酷的玩法。多重五角星的代碼比較簡單,用到了循環跟turtle庫一些簡單的方
python內建函數
call src print true bool nco cnblogs color 都是 #abs 求絕對值 print(abs(-1)) #all #判斷函數內部的布爾值,如果都是Trun則返回true #空是True print(all([1,2,‘a‘,Non
python--內建屬性
redirect log tca init subject 自定義 att 說明 技術 一、常用內建屬性 常用專有屬性說明觸發方式 __init__ 構造初始化函數 創建實例後,賦值時使用,在__new__後 __new__ 生成實例所需屬性 創建實例時
python中的turtle庫繪制圖形
坐標軸 src 完成 弧度 tle backward 像素 font 多邊形 1. 前奏: 在用turtle繪制圖形時,需要安裝對應python的解釋器以及IDE,我安裝的是pycharm,在安裝完pycharm後,在pycharm安裝相應庫的模塊,繪圖可以引入turtle
使用Python中的Turtle庫繪制簡單的圖形
Python Turtle Turtle圖形庫 Turtle庫是Python內置的圖形化模塊,屬於標準庫之一,位於Python安裝目錄的lib文件夾下,常用函數有以下幾種: 畫筆控制函數 penup():擡起畫筆; pendown():落下畫筆; pensize(width):畫筆寬度; pe
Python學習日記(2)Python內建集合及操作
進行 添加 依然 修改 lis ever 原來 合並 and 列表 列表是零個或多個Python對象的一個序列,這些對象通常稱之為項; 列表示例: [] #An empty list ["test"] #A list of one string
python 內建方法fromkeys()創建一個具有相同元素值的字典
python rom 一個 key 相同元素 fromkeys from code none >>> ddict = {}.fromkeys((‘x‘,‘y‘),-1) >>> ddict {‘y‘: -1, ‘x‘: -1} >&
Python內建函數二
cti obj 字符串 聲明 內部 元素 clas 解決 true 內置函數二: 1.lambda (匿名函數) 為了解決一些簡答的需求而設計的一句話函數。不需要def來聲明。 def func(n):
Python內建函數reduce()用法
red .com 必須 ret 用法 文章 輸出結果 序列 下一個 reduce把一個函數作用在一個序列[x1, x2, x3...]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算,下面講述Python內建函數reduce()用法。
Python內建進位制轉換函式(實現16進位制和ASCII轉換)
在進行wireshark抓包時你會發現底端視窗報文內容左邊是十六進位制數字,右邊是每兩個十六進位制轉換的ASCII字元,這裡使用Python程式碼實現一個十六進位制和ASCII的轉換方法。 hex() 轉換一個整數物件為十六進位制的字串 >>> hex(16) '0x10' >&
【Python內建包】csv模組用法
一、概述 CSV(逗號分隔符)檔案是表格與資料庫操作之中最常用的輸入輸出格式。在RFC4180中的檔案描述標準對CSV格式進行規範之前,CSV格式檔案就已經被應用了很多年了。而缺乏合適的格式描述規範意味著不同應用的輸入輸出格式會有著細微的差別。因此在從不同源生成這些檔案的時候,這些差別相
【Python內建包】re.sub功能
之前要用到正則替換,所以就用到了sub這個功能,看著doc裡寫的雲裡霧裡的,就自己做了做實驗 re.sub(pattern, repl, string, count=0, flags=0) 先說功能 Return the string obtained by replaci