用Python Turtle画棵樱花树送给自己

作者:盛夏温暖流年 时间:2022-06-30 10:16:47 

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

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

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

一. 绘制步骤

1. 环境安装

可以参考之前的博客:

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

2. 图片美化

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

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

用Python Turtle画棵樱花树送给自己

修改之后的代码:

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

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

用Python Turtle画棵樱花树送给自己

二. 技术学习

1. turtle 简介

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

2. turtle 绘图的基础知识

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

(1) . turtle 绘图窗体

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

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

(2) . turtle 的坐标体系

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

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

用Python Turtle画棵樱花树送给自己

(3) . turtle 画笔属性

用Python Turtle画棵樱花树送给自己

(4) . turtle 绘图命令

运动命令

用Python Turtle画棵樱花树送给自己

控制命令

用Python Turtle画棵樱花树送给自己

全局控制命令

用Python Turtle画棵樱花树送给自己

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

本篇博客参考了以下博客的代码:使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

来源:https://blog.csdn.net/j1231230/article/details/116980258

标签:Python,Turtle,樱花树
0
投稿

猜你喜欢

  • python 读取二进制 显示图片案例

    2021-10-15 17:27:45
  • 实例详解Python的进程,线程和协程

    2023-08-22 23:32:33
  • python列表中常见的一些排序方法

    2023-08-17 08:48:45
  • Python datatime库语法使用详解

    2022-01-30 03:16:17
  • Python线程条件变量Condition原理解析

    2022-07-23 02:52:06
  • python下如何查询CS反恐精英的服务器信息

    2021-09-15 05:51:47
  • Asp实现伪静态的方法

    2007-09-29 21:27:00
  • MySQL数据库备份和还原的常用命令

    2012-01-05 18:50:06
  • 使用 OpenCV-Python 识别答题卡判卷功能

    2023-02-03 07:01:43
  • Python如何安装第三方模块

    2023-08-01 12:50:07
  • 让SQL Server数据库自动执行管理任务(二)

    2009-03-20 11:40:00
  • MYSQL数据库实用学习资料之常用命令集合

    2009-03-06 18:12:00
  • 使用简单工厂模式来进行Python的设计模式编程

    2021-02-17 11:53:50
  • python多进程下的生产者和消费者模型

    2022-05-30 02:37:07
  • PHP结合vue导出excel出现乱码的解决方法分享

    2023-05-30 09:18:25
  • PHP使用自定义key实现对数据加密解密的方法

    2023-08-21 12:48:37
  • SQL Server各种日期计算方法

    2008-09-11 21:47:00
  • python pandas 对series和dataframe的重置索引reindex方法

    2023-08-25 08:10:57
  • 一文带你吃透什么是PHP中的序列化

    2023-06-12 19:44:20
  • Redux saga异步管理与生成器详解

    2023-07-24 02:53:52
  • asp之家 网络编程 m.aspxhome.com