Python+Turtle绘制航海王草帽路飞详解
目录
- 一、程序运行
- 1.效果展示-轮廓描绘
- 2.效果展示-颜色填充
- 二、实现过程
- 1.绘图数据下载
- 2.海龟绘图配置项
- 3.轮廓绘制
- 4.颜色填充:衣服、裤子
- 5.颜色填充:草帽、腰带
- 6.完整源码
一、程序运行
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 timport timex = 224y = 345def 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 Turtle路飞的资料请关注脚本之家其它相关文章!
推荐阅读
- 数据可视化|数据可视化-监控大屏呈现和拓扑图绘制工具总结
- 利用Python绘制酷炫的3D地图
- Python数据分析|Seaborn可视化绘制散点图
- 利用Matlab绘制有趣图像的示例代码
- 有趣的控制台玩法(一行代码绘制控制台图像!)
- Python|Python matplotlib实现折线图的绘制
- Flink|Flink 面试跳槽指南(1)——带领你疏通航道
- python用Joypy绘制嵴线图实例
- matplotlib绘制两点间连线的几种方法实现
- 利用pyecharts绘制地理散点图