栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

心情不好的时候,用 Python 画棵樱花树送给自己吧

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

心情不好的时候,用 Python 画棵樱花树送给自己吧

最近发生了很多事情 工作不开心 爱情无果而终 身边的小伙伴陆陆续续离职。虽然都不是会一下子击垮自己的事情 但是积攒起来 还是会有突然感到疲惫和倦怠的时候 有一种不知道下一步要走向哪里的无力感。

在这个城市留下了很多的回忆 但是身边的人一个个离开 走到现在 似乎没有太多留恋的了 也没想好未来要去哪里。自己是一个始终需要新鲜感的人 在这里停留了太久 大概到了该说再见的时候了吧。

那么 用一个不熟悉的语言 画棵樱花树送给自己吧 代码也可以很浪漫不是吗。520刚刚过了 没有爱情 自己也要好好爱自己才对。

一. 绘制步骤 1. 环境安装

可以参考之前的博客

Python 爬虫实现 抓取电影网站信息并入库

2. 图片美化

之前没怎么用过 Python 就对别人的代码进行分析和效果优化好啦 顺便学习一下。

这个是原来的效果图 有点灰蒙蒙的 微微改动 让它明媚一点。

修改之后的代码

from turtle import *
from random import *
from math import *
def tree(n,l):
 pd()#下笔
 #阴影效果
 t cos(radians(heading() 45))/8 0.25
 pencolor(t,t,t)
 pensize(n/3)
 forward(l)#画树枝
 if n 0:
 b random()*15 10 #右分支偏转角度
 c random()*15 10 #左分支偏转角度
 d l*(random()*0.25 0.7) #下一个分支的长度
 #右转一定角度,画右分支
 right(b)
 tree(n-1,d)
 #左转一定角度 画左分支
 left(b c)
 tree(n-1,d)
 #转回来
 right(c)
 else:
 #画叶子
 right(90)
 n cos(radians(heading()-45))/4 0.5
 ran random()
 #这里相比于原来随机添加了填充的圆圈 让樱花叶子看起来更多一点
 if(ran 0.7):
 begin_fill()
 circle(3)
 fillcolor( pink )
 #把原来随机生成的叶子换成了统一的粉色
 pencolor( pink )
 circle(3)
 if(ran 0.7):
 end_fill()
 left(90)
 #添加0.3倍的飘落叶子
 if(random() 0.7):
 pu()
 t heading()
 an -40 random()*40
 setheading(an)
 dis int(800*random()*0.5 400*random()*0.3 200*random()*0.2)
 forward(dis)
 setheading(t)
 #画叶子
 pd()
 right(90)
 n cos(radians(heading()-45))/4 0.5
 pencolor(n*0.5 0.5,0.4 n*0.4,0.4 n*0.4)
 circle(2)
 left(90)
 pu()
 t heading()
 setheading(an)
 backward(dis)
 setheading(t)
 pu()
 backward(l)#退回
bgcolor(0.956,0.9255,0.9882)#设置背景色 把灰色换成淡紫色 
ht()#隐藏turtle
speed(0)#速度 1-10渐进 0 最快
tracer(0,0)
pu()#抬笔
backward(50)
left(90)#左转90度
pu()#抬笔
backward(300)#后退300
tree(12,100)#递归7层
done()

之后的效果温暖一点 喜欢这种更有温度的色调

二. 技术学习 1. turtle 简介

樱花树的绘制效果是通过 Python 中的 turtle 来实现的 Python 的强大之处在于有许多很强大的库 turtle就是其中之一 是 Python 自带的一个库。

2. turtle 绘图的基础知识

turtle库绘制原理 有一只海龟在窗体正中心 在画布上游走 走过的轨迹形成了绘制的图形 海龟由程序控制 可以自由改变颜色、方向宽度等。

(1) . turtle 绘图窗体

setup用来设置窗体大小 后两个参数为非必选参数

turtle.setup(width,height,startx,starty)

(2) . turtle 的坐标体系

画布上 默认有一个坐标原点为画布中心的坐标轴 坐标原点上有一只面朝x轴正方向的小乌龟。

这里我们描述小乌龟时使用了两个词语 坐标原点(位置) 面朝x轴正方向(方向) turtle 绘图中 就是使用位置方向描述小乌龟(画笔)的状态的。

(3) . turtle 画笔属性

命令说明turtle.pensize()设置画笔的宽度turtle.pencolor()没有参数传入 返回当前画笔颜色;传入参数设置画笔颜色 可以是字符串如 “green”, “red”,也可以是RGB 3元组turtle.speed(speed)设置画笔移动速度 画笔绘制的速度范围 [0,10] 整数 数字越大越快

(4) . turtle 绘图命令

运动命令

命令说明turtle.forward(distance)向当前画笔方向移动distance像素长度turtle.backward(distance)向当前画笔相反方向移动distance像素长度turtle.right(degree)顺时针移动degree°turtle.left(degree)逆时针移动degree°turtle.pendown()移动时绘制图形 缺省时也为绘制turtle.goto(x,y)将画笔移动到坐标为x,y的位置turtle.penup()提起笔移动 不绘制图形 用于另起一个地方绘制turtle.pendown()移动时绘制图形 缺省时也为绘制turtle.circle()画圆 半径为正(负) 表示圆心在画笔的左边(右边)画圆setx( )将当前x轴移动到指定位置sety( )将当前y轴移动到指定位置setheading(angle)设置当前朝向为angle角度home()设置当前画笔位置为原点 朝向东dot®绘制一个指定直径和颜色的圆点

控制命令

命令说明turtle.fillcolor(colorstring)绘制图形的填充颜色turtle.color(color1, color2)同时设置 pencolor color1, fillcolor color2turtle.filling()返回当前是否在填充状态turtle.begin_fill()准备开始填充图形turtle.end_fill()填充完成turtle.hideturtle()隐藏画笔的turtle形状turtle.showturtle()显示画笔的turtle形状

全局控制命令

命令说明turtle.clear()清空turtle窗口 但是turtle的位置和状态不会改变turtle.reset()清空窗口 重置turtle状态为起始状态turtle.undo()撤销上一个turtle动作turtle.isvisible()返回当前turtle是否可见stamp()复制当前图形turtle.hideturtle()隐藏画笔的turtle形状turtle.write(s [,font (“font-name”,font_size,“font_type”)])写文本 s为文本内容 font是字体的参数 分别为字体名称 大小和类型 font为可选项 font参数也是可选项

虽然没有在原来的基础上改动太多的代码 只是简单的给樱花树换了个风格 但是其实也做了很多的尝试和调整 也学到了怎么使用 turtle 。

这篇博客磨磨唧唧写了好久 在调整和写的时候也在调整自己的心情。在这中间还趁着周末自己跑去青岛溜达了一圈 比烟台热好多啊 去了一趟一下子想开了 哈哈哈哈 果然还是要多出去溜达溜达啊。

有的时候其实想想 想要新鲜感也很容易 既然外面环境给不了 那就自己来创造。最近想买个吉他 准备给自己加点文艺色彩 就算生活暂时不那么美好 自己还是要做一些有意思的事情尽量让自己保持一个好的心态。

虽然还是不知道以后要怎样 但是先走好脚下的路 活在当下 以后的事顺其自然就好啦。

Everything will be ok~

加油

本篇博客参考了以下博客的代码 之前忘记加上了 多亏评论区小伙伴提醒 感谢原作者 送上小花花~~ ★,°:.☆( ▽ )/$:.°★ 。

Python——画一棵漂亮的樱花树 不同种樱花 玫瑰 圣诞树喔

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号