Python+Turtle繪制航海王草帽路飛詳解
一、程序運行
1.效果展示 - 輪廓描繪
看輪廓描繪效果:

2.效果展示 - 顏色填充
衣服和褲子顏色填充效果:

二、實現(xiàn)過程
1.繪圖數(shù)據(jù)下載
內容預覽:

2.海龜繪圖配置項
降低刷新率可提升繪制速度,值越大刷新頻率越低,速度越快
t.tracer(5000)
def set_trutle():
'''
作用:海龜繪圖配置項
參數(shù):無
返回:無
'''
# 默認顏色區(qū)間是[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():
'''
作用:繪制路飛輪廓
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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():
'''
作用:路飛顏色填充:衣服、帽子
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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():
'''
作用:路飛顏色填充:草帽、腰帶
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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():
'''
作用:海龜繪圖配置項
參數(shù):無
返回:無
'''
# 默認顏色區(qū)間是[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():
'''
作用:繪制路飛輪廓
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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():
'''
作用:路飛顏色填充:衣服、帽子
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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():
'''
作用:路飛顏色填充:草帽、腰帶
參數(shù):無
返回:無
'''
# 數(shù)據(jù)文件讀取
f=open("lufei.txt","r")
bigmom_date = f.read().split(" ")
for i in bigmom_date:
try:
# 數(shù)據(jù)分離與轉化
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 執(zhí)行sql語句時所傳參數(shù)含有單引號的問題
這篇文章主要介紹了解決python 執(zhí)行sql語句時所傳參數(shù)含有單引號的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
TensorFlow人工智能學習按索引取數(shù)據(jù)及維度變換詳解
這篇文章主要為大家介紹了TensorFlow人工智能學習按索引取數(shù)據(jù)及維度變換的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Python如何基于Tesseract實現(xiàn)識別文字功能
這篇文章主要介紹了Python如何基于Tesseract實現(xiàn)識別文字功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
Python機器學習NLP自然語言處理基本操作之京東評論分類
自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法2021-10-10
Python?Streamlit制作交互式可視化網(wǎng)頁應用實例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
python 插入日期數(shù)據(jù)到Oracle實例
這篇文章主要介紹了python 插入日期數(shù)據(jù)到Oracle實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

