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

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

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

2.海龜繪圖配置項(xiàng)
降低刷新率可提升繪制速度,值越大刷新頻率越低,速度越快
t.tracer(5000)
def set_trutle():
'''
作用:海龜繪圖配置項(xiàng)
參數(shù):無
返回:無
'''
# 默認(rèn)顏色區(qū)間是[0,1],切換為[0,255]
t.Screen().colormode(255)
# 設(shè)置起始大小
t.setup(width=x, height=y)
# 調(diào)整坐標(biāo),
t.setworldcoordinates(0,y,x,0)
t.pen()
# 設(shè)置繪制速度,0為最快
t.speed(0)
# 禁用延遲提升速度
t.delay(0)
# 提升速度,值越大越快
t.tracer(5000)
# 設(shè)置默認(rèn)畫筆顏色為白色
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ù)分離與轉(zhuǎn)化
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.顏色填充:衣服、褲子
繪制衣服、褲子的紅色和藍(lán)色。
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ù)分離與轉(zhuǎn)化
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ù)分離與轉(zhuǎn)化
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
# 作者:小藍(lán)棗
# 圖像繪制:路飛
import turtle as t
import time
x = 224
y = 345
def set_trutle():
'''
作用:海龜繪圖配置項(xiàng)
參數(shù):無
返回:無
'''
# 默認(rèn)顏色區(qū)間是[0,1],切換為[0,255]
t.Screen().colormode(255)
# 設(shè)置起始大小
t.setup(width=x, height=y)
# 調(diào)整坐標(biāo),
t.setworldcoordinates(0,y,x,0)
t.pen()
# 設(shè)置繪制速度,0為最快
t.speed(0)
# 禁用延遲提升速度
t.delay(0)
# 提升速度,值越大越快
t.tracer(5000)
# 設(shè)置默認(rèn)畫筆顏色為白色
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ù)分離與轉(zhuǎn)化
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ù)分離與轉(zhuǎn)化
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ù)分離與轉(zhuǎn)化
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繪制航海王草帽路飛詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Turtle路飛的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)多格式文本轉(zhuǎn)為word
在現(xiàn)代工作中,我們常常需要處理不同格式的文件,其中Word文檔是最為常見的一種,本文主要介紹了如何使用Python創(chuàng)建一個(gè)全能的文件處理工具,能夠?qū)⒍喾N格式的文件轉(zhuǎn)換為Word文檔,需要的可以參考下2023-11-11
Python調(diào)用釘釘自定義機(jī)器人的實(shí)現(xiàn)
這篇文章主要介紹了Python調(diào)用釘釘自定義機(jī)器人的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Python實(shí)現(xiàn)i人事自動(dòng)打卡的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)i人事自動(dòng)打卡的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
python實(shí)現(xiàn)windows倒計(jì)時(shí)鎖屏功能
這篇文章主要介紹了python實(shí)現(xiàn)windows倒計(jì)時(shí)鎖屏功能,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
python 怎樣將dataframe中的字符串日期轉(zhuǎn)化為日期的方法
這篇文章主要介紹了python 怎樣將dataframe中的字符串日期轉(zhuǎn)化為日期的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Python創(chuàng)建類的方法及成員訪問的相關(guān)知識總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python基礎(chǔ)的相關(guān)知識,文章圍繞著Python類的方法及成員訪問展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python用access判斷文件是否被占用的實(shí)例方法
在本篇文章里小編給大家整理的是一篇關(guān)于Python用access判斷文件是否被占用的實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12
在Python 2.7即將停止支持時(shí),我們?yōu)槟銕砹艘环輕ython 3.x遷移指南
這篇文章主要介紹了在Python 2.7即將停止支持時(shí)我們?yōu)槟銣?zhǔn)備了一份python 3.x遷移指南的相關(guān)資料,需要的朋友可以參考下2018-01-01
如何使用python實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊
這篇文章主要介紹了如何使用python實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01

