当前位置 : 主页 > 编程语言 > python >

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘

来源:互联网 收集:自由互联 发布时间:2022-06-18
Turtle 海龟绘图系列 - Python 代码绘制航海王草帽路飞 ​​第一章:程序运行​​ ​​① 效果展示 - 轮廓描绘​​ ​​② 效果展示 - 颜色填充​​ ​​第二章:实现过程​​ ​​①



Turtle 海龟绘图系列 - Python 代码绘制航海王草帽路飞

  • ​​第一章:程序运行​​
  • ​​① 效果展示 - 轮廓描绘​​
  • ​​② 效果展示 - 颜色填充​​
  • ​​第二章:实现过程​​
  • ​​① 绘图数据下载​​
  • ​​② 海龟绘图配置项​​
  • ​​③ 轮廓绘制​​
  • ​​④ 颜色填充:衣服、裤子​​
  • ​​⑤ 颜色填充:草帽、腰带​​
  • ​​⑥ 完整源码​​


​[ 系列文章篇 ]​

​​Python​ 地图篇 - 使用 ​pyecharts​ 绘制世界地图、中国地图、省级地图、市级地图实例详解​​

第一章:程序运行

① 效果展示 - 轮廓描绘

看轮廓描绘效果:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_数据

② 效果展示 - 颜色填充

衣服和裤子颜色填充效果:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_配置项_02

第二章:实现过程

① 绘图数据下载

​获取地址:​​小蓝枣的 csdn 资源仓库​​

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_数据_03

内容预览:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_开发语言_04

② 海龟绘图配置项

降低刷新率可提升绘制速度,值越大刷新频率越低,速度越快

​​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()

③ 轮廓绘制

通过下落画笔 ​​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("轮廓绘制完成")

效果图演示:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_文件读取_05

④ 颜色填充:衣服、裤子

绘制衣服、裤子的红色和蓝色。

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("上色完成")

效果图演示:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_配置项_06

⑤ 颜色填充:草帽、腰带

绘制草帽、腰带的黄色。

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("上色完成")

效果图演示:

每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列_文件读取_07

⑥ 完整源码

# -*- 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)

喜欢的点个赞❤吧!


网友评论