Python+Turtle繪制航海王草帽路飛詳解
更新時間:2022年03月10日 11:59:02 作者:掙扎的藍藻
turtle庫是一個點線面的簡單圖像庫,在Python2.6之后被引入進來,能夠完成一些比較簡單的幾何圖像可視化。本文將利用turtle繪制一個可愛的草帽路飛,感興趣的可以試一試
一、程序運行
1.效果展示 - 輪廓描繪
看輪廓描繪效果:
2.效果展示 - 顏色填充
衣服和褲子顏色填充效果:
二、實現過程
1.繪圖數據下載
內容預覽:
2.海龜繪圖配置項
降低刷新率可提升繪制速度,值越大刷新頻率越低,速度越快
t.tracer(5000)
def set_trutle(): ''' 作用:海龜繪圖配置項 參數:無 返回:無 ''' # 默認顏色區間是[0,1],切換為[0,255] t.Screen().colormode(255) # 設置起始大小 t.setup(width=x, height=y) # 調整坐標, t.setworldcoordinates(0,y,x,0) t.pen() # 設置繪制速度,0為最快 t.speed(0) # 禁用延遲提升速度 t.delay(0) # 提升速度,值越大越快 t.tracer(5000) # 設置默認畫筆顏色為白色 t.pencolor((255,255,255)) # 抬起畫筆 t.penup()
3.輪廓繪制
通過下落畫筆 t.pendown()
和抬起畫筆 t.penup()
來避免連線問題。
def draw_lufei_outline(): ''' 作用:繪制路飛輪廓 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = round(float(j[0])) y1 = round(float(j[1])) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>50): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("輪廓繪制完成")
效果圖演示:
4.顏色填充:衣服、褲子
繪制衣服、褲子的紅色和藍色。
def draw_lufei_tintage1(): ''' 作用:路飛顏色填充:衣服、帽子 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = int(j[0]) y1 = int(j[1]) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>150): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("上色完成")
效果圖演示:
5.顏色填充:草帽、腰帶
繪制草帽、腰帶的黃色。
def draw_lufei_tintage2(): ''' 作用:路飛顏色填充:草帽、腰帶 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = int(j[0]) y1 = int(j[1]) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>215): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("上色完成")
效果圖演示:
6.完整源碼
# -*- coding:utf-8 -*- # 2022-3-9 # 作者:小藍棗 # 圖像繪制:路飛 import turtle as t import time x = 224 y = 345 def set_trutle(): ''' 作用:海龜繪圖配置項 參數:無 返回:無 ''' # 默認顏色區間是[0,1],切換為[0,255] t.Screen().colormode(255) # 設置起始大小 t.setup(width=x, height=y) # 調整坐標, t.setworldcoordinates(0,y,x,0) t.pen() # 設置繪制速度,0為最快 t.speed(0) # 禁用延遲提升速度 t.delay(0) # 提升速度,值越大越快 t.tracer(5000) # 設置默認畫筆顏色為白色 t.pencolor((255,255,255)) # 抬起畫筆 t.penup() def draw_lufei_outline(): ''' 作用:繪制路飛輪廓 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = round(float(j[0])) y1 = round(float(j[1])) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>50): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("輪廓繪制完成") def draw_lufei_tintage1(): ''' 作用:路飛顏色填充:衣服、帽子 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = int(j[0]) y1 = int(j[1]) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>150): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("上色完成") def draw_lufei_tintage2(): ''' 作用:路飛顏色填充:草帽、腰帶 參數:無 返回:無 ''' # 數據文件讀取 f=open("lufei.txt","r") bigmom_date = f.read().split(" ") for i in bigmom_date: try: # 數據分離與轉化 j = i.split("_") x1 = int(j[0]) y1 = int(j[1]) color = j[2][1:-1].split(",") color[0]=int(color[0]) color[1]=int(color[1]) color[2]=int(color[2]) if((color[0]*0.299 + color[1]*0.587 + color[2]*0.114)>215): color = (255,255,255); # 下落畫筆 t.pendown() # 解決圖像只繪制一半的問題 t.sety(y1) # 軌跡追蹤與繪制 t.goto(x1, y1) t.color(color) # 抬起畫筆 t.penup() except Exception as e: print() f.close() print("上色完成") set_trutle() draw_lufei_outline() draw_lufei_tintage1() draw_lufei_tintage2() time.sleep(10000)
以上就是Python+Turtle繪制航海王草帽路飛詳解的詳細內容,更多關于Python Turtle路飛的資料請關注腳本之家其它相關文章!
相關文章
Python 文件操作技巧(File operation) 實例代碼分析
python遍歷文件夾和文件 perl分割路徑和文件名2008-08-08python為Django項目上的每個應用程序創建不同的自定義404頁面(最佳答案)
這篇文章主要介紹了python為Django項目上的每個應用程序創建不同的自定義404頁面,本文給出了最佳答案,大家可以跟隨小編一起學習下2020-03-03
最新評論