Python+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路飛的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python繪圖模塊之利用turtle畫圖
- Python制作七夕表白案例分享
- 基於Python中的turtle繪畫星星和星空
- 基於Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼
- python基於turtle繪制幾何圖形