Python+Turtle绘制航海王草帽路飞详解
作者:挣扎的蓝藻 发布时间:2023-12-31 18:08:09
标签: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)
来源:https://blog.csdn.net/qq_38161040/article/details/123391039
0
投稿
猜你喜欢
- 数组是一种有序的集合,可随时添加、删除其中的元素book = ['xiao zhu pei qi','xiao ji
- 感谢Mr.Cool 给asp之家投递精彩的文章!站长你好,我经常光临你的站点,因为我也特别喜欢ASP写网页,你的站点上提供的代码比较适用哈,
- 1 Kmean图像分割按照Kmean原理,对图像像素进行聚类。优点:此方法原理简单,效果显著。缺点:实践发现对于前景和背景颜色相近或者颜色区
- 1.包: package PaintBrush; /** * * @author lucifer */ public class Paint
- 工作中,我们经常会遇到数据异常,比如说浏览量突增猛降,交易量突增猛降,但是这些数据又不是符合正太分布的,如果用几倍西格玛就不合适,那么我们如
- 今天因为程序里面要把写入数据库的html源代码以html源编码的形式显示在页面里面,而不要被浏览器解释成。。找了N久都不知道怎么做后来看了一
- 本文为大家分享了pygame游戏之旅的第3篇,供大家参考,具体内容如下载入car图片(我自己画的),需要用到pygame.image模块,定
- 使用re, urllib, threading多线程抓取天涯帖子内容,设置url为需抓取的天涯帖子的第一页,设置file_name为下载后的
- 对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来
- 在settings.py里,配置如下logging:LOGGING = { 'version': 1, 'disab
- 1、如何认识可视化?需要指出的是,虽然不同绘图工具包的功能、效果会有差异,但在常用功能上相差并不是很大。与选择哪种绘图工具包相比,更重要的是
- format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串。1、基本用法1. 按照{}的顺序依次匹配括号中的值s
- 代码如下:'============================== '格式化HTML,SDCMS加强版 '==
- function commafy() { var num = document.getElementById("NumA"
- 本文实例为大家分享了Python曲线拟合的最小二乘法,供大家参考,具体内容如下模块导入import numpy as npimport ga
- 本文实例讲述了Python Web框架之Django框架文件上传功能。分享给大家供大家参考,具体如下:上传方式:- Form表单上传文件-
- 本文实例讲述了Python文件与文件夹常见基本操作。分享给大家供大家参考,具体如下:1、判断文件(夹)是否存在。os.path.exists
- 无聊,写了一个图片后加载的东东,感谢asfman帮忙<!DOCTYPE html PUBLIC "-//W3C//DTD X
- 很早就在这里看到过解决方案,与嗷嗷讨论后发现这个方案还是很可靠的。当然,唯一的缺点就是每一个属性都要去Hack,但我在很多实践中,只用‘修正
- 本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的