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

原创

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

最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~)
one 樱花树

  • 动态生成樱花
    效果图(这个是动态的):
    在这里插入图片描述实现代码
import turtle as T
import random
import time

# 画樱花的躯干(60,t)
def Tree(branch, t):
time.sleep(0.0005)
if branch > 3:
if 8 <= branch <= 12:
if random.randint(0, 2) 0:
t.color(‘snow’) # 白
else:
t.color(‘lightcoral’) # 淡珊瑚色
t.pensize(branch / 3)
elif branch < 8:
if random.randint(0, 1) 0:
t.color(‘snow’)
else:
t.color(‘lightcoral’) # 淡珊瑚色
t.pensize(branch / 2)
else:
t.color(‘sienna’) # 赭(zhě)色
t.pensize(branch / 10) # 6
t.forward(branch)
a = 1.5 random.random()
t.right(20 a)
b = 1.5 random.random()
Tree(branch - 10 b, t)
t.left(40 a)
Tree(branch - 10 b, t)
t.right(20 * a)
t.up()
t.backward(branch)
t.down()

# 掉落的花瓣
def Petal(m, t):
for i in range(m):
a = 200 - 400 random.random()
b = 10 - 20 random.random()
t.up()
t.forward(b)
t.left(90)
t.forward(a)
t.down()
t.color(‘lightcoral’) # 淡珊瑚色
t.circle(1)
t.up()
t.backward(a)
t.right(90)
t.backward(b)

# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle() # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg=‘wheat’) # wheat小麦
t.left(90)
t.up()
t.backward(150)
t.down()
t.color(‘sienna’)

# 画樱花的躯干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 飘落效果
    效果图:
    在这里插入图片描述代码:
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
    pencolor(n,n*0.8,n*0.8)
    circle(3)
    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.5,0.5,0.5)#背景色
ht()#隐藏turtle
speed(0)#速度 1-10渐进,0 最快
tracer(0,0)
pu()#抬笔
backward(100)
left(90)#左转90度
pu()#抬笔
backward(300)#后退300
tree(12,100)#递归7层
done()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 暗色效果
    效果:
    在这里插入图片描述
    代码
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 / 4)
forward(l)
if n > 0:
b = random() 15 + 10
c = random() 15 + 10
d = l (random() 0.35 + 0.6)
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
pencolor(n, n, n)
circle(2)
left(90)
pu()
backward(l)
bgcolor(0.5, 0.5, 0.5)
ht()
speed(0)
tracer(0, 0)
left(90)
pu()
backward(300)
tree(13, 100)
done()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

two 玫瑰花
效果(有绘制过程)
在这里插入图片描述代码


from turtle import *
import time

setup(1000,800,0,0)
speed(0)
penup()
seth(90)
fd(340)
seth(0)
pendown()

speed(5)
begin_fill()
fillcolor(‘red’)
circle(50,30)

for i in range(10):
fd(1)
left(10)

circle(40,40)

for i in range(6):
fd(1)
left(3)

circle(80,40)

for i in range(20):
fd(0.5)
left(5)

circle(80,45)

for i in range(10):
fd(2)
left(1)

circle(80,25)

for i in range(20):
fd(1)
left(4)

circle(50,50)

time.sleep(0.1)

circle(120,55)

speed(0)

seth(-90)
fd(70)

right(150)
fd(20)

left(140)
circle(140,90)

left(30)
circle(160,100)

left(130)
fd(25)

penup()
right(150)
circle(40,80)
pendown()

left(115)
fd(60)

penup()
left(180)
fd(60)
pendown()

end_fill()

right(120)
circle(-50,50)
circle(-20,90)

speed(1)
fd(75)

speed(0)
circle(90,110)

penup()
left(162)
fd(185)
left(170)
pendown()
circle(200,10)
circle(100,40)
circle(-52,115)
left(20)
circle(100,20)
circle(300,20)
speed(1)
fd(250)

penup()
speed(0)
left(180)
fd(250)
circle(-300,7)
right(80)
circle(200,5)
pendown()

left(60)
begin_fill()
fillcolor(‘green’)
circle(-80,100)
right(90)
fd(10)
left(20)
circle(-63,127)
end_fill()

penup()
left(50)
fd(20)
left(180)

pendown()
circle(200,25)

penup()
right(150)

fd(180)

right(40)
pendown()
begin_fill()
fillcolor(‘green’)
circle(-100,80)
right(150)
fd(10)
left(60)
circle(-80,98)
end_fill()

penup()
left(60)
fd(13)
left(180)

pendown()
speed(1)
circle(-200,23)

exitonclick()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163

three 圣诞树

  • 圣诞树 (动态生成效果)
    在这里插入图片描述
    代码:
from turtle import *
import random
import time

n = 100.0

speed(“fastest”)
screensize(bg=‘seashell’)
left(90)
forward(3*n)
color(“orange”, “yellow”)
begin_fill()
left(126)

for i in range(5):
forward(n/5)
right(144)
forward(n/5)
left(72)
end_fill()
right(126)

color(“dark green”)
backward(n4.8)
def tree(d, s):
if d <= 0: return
forward(s)
tree(d-1, s.8)
right(120)
tree(d-3, s.5)
right(120)
tree(d-3, s.5)
right(120)
backward(s)
tree(15, n)
backward(n/2)

for i in range(200):
a = 200 - 400 random.random()
b = 10 - 20 random.random()
up()
forward(b)
left(90)
forward(a)
down()
if random.randint(0, 1) == 0:
color(‘tomato’)
else:
color(‘wheat’)
circle(2)
up()
backward(a)
right(90)
backward(b)

time.sleep(60)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

未完待续!

                                
文章最后发布于: 2019-10-22 21:59:00
        
展开阅读全文
0 个人打赏
发表评论
还能输入1000个字符

不影响运行举报回复

  • qq_45861046
    qq_45861046 7小时前 #46楼 挺好,学习了。 举报回复
  • u011311176
    皮皮毅. 9小时前 #45楼 我用pychram运行的
    很完美,但是为啥玫瑰画起来有种突然就完成的感觉
    举报回复
  • qq_43812823
    qq_43812823 4天前 #44楼 不行呀def tree(n,1):报错啦 举报回复查看回复(1)
    • qq_45836670
      qq_45836670 回复 qq_43812823 9小时前 我也是就这里一直报错 举报回复
  • qq_45836670
    qq_45836670 9小时前 #43楼 为什么我的第二个樱花那个图的def tree(n,1)1总是报错啊啊啊 举报回复
  • deimr
    deimr 1天前 #42楼 牛逼呀 举报回复
  • weixin_45502675
    weixin_45502675 3天前 #41楼 樱花树是有固定的格式还是每次都是随机的? 举报回复查看回复(1)
    • weixin_43943977
      Soul fragments 回复 weixin_45502675 2天前 随机的啦 举报回复
  • weixin_45611297
    chin。 3天前 #40楼 为什么运行不出来 举报回复
  • weixin_44678622
    weixin_44678622 3天前 #39楼 棒!!! 举报回复
  • qq_40259641
    阿猫阿狗哈 3天前 #38楼 图没动也 举报回复

  • 上一页
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页




Python——turtle绘制动漫形象(魔法少女小圆晓美焰,super beautiful)

10-24 阅读数 1042

偶尔从翻到的一个github我实现了下感觉效果超漂亮,分享给大家!成品图:绘制过程:代码:importturtleasteimporttimeWriteStep=15#贝塞尔函数的取样次数Speed=... 博文 来自: 碎片

python3用turtle模块一棵随机樱花树

01-05 阅读数 2万+

#!/usr/bin/envpython#coding=utf-8#画一棵樱花importturtleimportrandomfromturtleimport*fromtimeimportsleep#... 博文 来自: 執筆冩回憶

小试牛刀——用python一朵美丽的玫瑰

12-10 阅读数 1万+

小试牛刀——用python画一朵美丽的玫瑰花~~ 博文 来自: 禾白小的博客

让程序员崩溃的瞬间(非程序员勿入)

09-16 阅读数 18万+

今天给大家带来点快乐,程序员才能看懂。

来源:https://zhuanlan.zhihu.com/p/47066521

  1. 公司实习生找 Bug

2.在调试时,将断点设…


博文



用Python分析2000款避孕套,得出这些有趣的结论

09-18 阅读数 3万+

到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是:

第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端。
第二篇:淘宝自动登录2.0,新增Cookies序列化…


博文



Spring Cloud(11)——基于RocketMQ的Stream实现

09-20 阅读数 1526

基于RocketMQ的Stream实现 Spring Cloud Stream是一个消息收发的框架,它提供了一套标准,应用程序只需要按照它的标准进行消息的收发,而不用关注具体的实现机制。具体的实现可以... 博文

Java 13 新特性全面解读

09-21 阅读数 1241

作者 l Hollis

本文经授权转载自Hollis(ID:hollischuang)

2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每…


博文



技术人员要拿百万年薪,必须要经历这9个段位

08-24 阅读数 9878

很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...... 博文

面试官:兄弟,说说基本类型和包装类型的区别吧

09-29 阅读数 3万+

Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。... 博文

多线程编程是后台开发人员的基本功

09-29 阅读数 5474

这里先给大家分享一个小故事:在我刚开始参加工作的那年,公司安排我开发一款即时通讯软件(IM,类似于 QQ 聊天软件),在这之前我心里也知道如果多线程操作一个整型值是要加锁...... 博文

进程和线程的区别(超详细)

10-03 阅读数 2179

进程和线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。

线程
进程中的一个执行任务…


博文



动画:用动画给面试官解释 TCP 三次握手过程

10-12 阅读数 2万+

作者 | 小鹿 来源 | 公众号:小鹿动画学编程

写在前边
TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。
对于…


博文



500行代码,教你用python写个微信飞机大战

10-16 阅读数 4万+

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。

帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / …


博文



唐僧团队要裁员,你会裁谁?

10-15 阅读数 3万+

提问:

西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么?

为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。
高层领导: 观音…


博文



2019诺贝尔经济学奖得主:贫穷的本质是什么?

10-15 阅读数 6411

2019年诺贝尔经济学奖,颁给了来自麻省理工学院的 阿巴希·巴纳吉(Abhijit Vinayak Banerjee)、艾丝特·杜芙若(Esther Duflo)夫妇和哈...... 博文

linux:最常见的linux命令(centOS 7.6)

10-16 阅读数 8669

最常见,最频繁使用的20个基础命令如下: 皮一下,这都是干货偶,大佬轻喷 一、linux关机命令: 1.shutdown命令安全地将系统关机(推荐)参数说明: [-r] 重启计算器。 [-h] 关机后... 博文

只因写了一段爬虫,公司200多人被抓!

10-16 阅读数 9万+

“一个程序员写了个爬虫程序,整个公司200多人被端了。”

“不可能吧!”

刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。…


博文



别在学习框架了,那些让你起飞的计算机基础知识。

10-22 阅读数 4万+

我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,... 博文

MySQL数据库—SQL汇总

10-24 阅读数 8808

一、准备 下文整理常见SQL语句的用法,使用MySQL5.7测试,参考了尚硅谷MySQL教程及用例。用例sql: 链接: https://pan.baidu.com/s/1tb3-12MRNFjV8d... 博文

五款高效率黑科技神器工具,炸裂好用,省时间

10-20 阅读数 1万+

loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废...... 博文

动画:用动画给女朋友讲解 TCP 四次分手过程

10-21 阅读数 2万+

作者 | 小鹿 来源 | 公众号:小鹿动画学编程

写在前边
大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有…


博文



程序员必须掌握的核心算法有哪些?

10-21 阅读数 5万+

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,... 博文

python 程序员进阶之路:从新手到高手的100个模块

10-23 阅读数 3万+

在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python... 博文

程序员不懂浪漫?胡扯!

10-22 阅读数 1万+

程序员男朋友你的程序员男朋友为你做过什么暖心的事情呢?我的男朋友是一个程序员,他有很多大家在网络上吐槽的程序员的缺点,比如加班很多,没空陪我吃饭逛街看电影,比如说他有的时......

你可能感兴趣的:(樱花,python,java,js,Python)