热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用python画花瓣Python——画一棵漂亮的樱花树

代码货币符号分享给大家樱花树代码importturtleasTimportrandomimporttime画樱花的躯干(60,t)defTree(branch,t):

代码货币符号分享给大家

樱花树

代码

import turtle as T

import random

import time

画樱花的躯干(60,t)

def Tree(branch, t):

time.sleep(0.0005)

if branch > 3:

if 8 <&#61; branch <&#61; 12:

if random.randint(0, 2) &#61;&#61; 0:

t.color("snow") # 白

else:

t.color("lightcoral") # 淡珊瑚色

t.pensize(branch / 3)

elif branch <8:

if random.randint(0, 1) &#61;&#61; 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 &#61; 1.5 random.random()

t.right(20 a)

b &#61; 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 &#61; 200 - 400 random.random()

b &#61; 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 &#61; T.Turtle()

画布大小

w &#61; T.Screen()

t.hideturtle() # 隐藏画笔

t.getscreen().tracer(5, 0)

w.screensize(bg&#61;"wheat") # wheat小麦

t.left(90)

t.up()

t.backward(150)

t.down()

t.color("sienna")

画樱花的躯干

Tree(60, t)

掉落的花瓣

Petal(200, t)

w.exitonclick()

代码

from turtle import from random import

from math import *

def tree(n,l):

pd()#下笔

#阴影效果

t &#61; cos(radians(heading()&#43;45))/8&#43;0.25

pencolor(t,t,t)

pensize(n/3)

forward(l)#画树枝

if n>0:

b &#61; random()*15&#43;10 #右分支偏转角度

c &#61; random()*15&#43;10 #左分支偏转角度

d &#61; l*(random()*0.25&#43;0.7) #下一个分支的长度

#右转一定角度,画右分支

right(b)

tree(n-1,d)

#左转一定角度&#xff0c;画左分支

left(b&#43;c)

tree(n-1,d)

#转回来

right(c)

else:

#画叶子

right(90)

n&#61;cos(radians(heading()-45))/4&#43;0.5

pencolor(n,n*0.8,n*0.8)

circle(3)

left(90)

#添加0.3倍的飘落叶子

if(random()>0.7):

pu()

#飘落

t &#61; heading()

an &#61; -40 &#43;random()*40

setheading(an)

dis &#61; int(800*random()*0.5 &#43; 400*random()*0.3 &#43; 200*random()*0.2)

forward(dis)

setheading(t)

#画叶子

pd()

right(90)

n &#61; cos(radians(heading()-45))/4&#43;0.5

pencolor(n*0.5&#43;0.5,0.4&#43;n*0.4,0.4&#43;n*0.4)

circle(2)

left(90)

pu()

#返回

t&#61;heading()

setheading(an)

backward(dis)

setheading(t)

pu()

backward(l)#退回

bgcolor(0.5,0.5,0.5)#背景色

ht()#隐藏turtle

speed(0)#速度 1-10渐进&#xff0c;0 最快

tracer(0,0)

pu()#抬笔

backward(100)

left(90)#左转90度

pu()#抬笔

backward(300)#后退300

tree(12,100)#递归7层

done()

代码

from turtle import from random import

from math import *

def tree(n, l):

pd()

t &#61; cos(radians(heading() &#43; 45)) / 8 &#43; 0.25

pencolor(t, t, t)

pensize(n / 4)

forward(l)

if n > 0:

b &#61; random() 15 &#43; 10

c &#61; random() 15 &#43; 10

d &#61; l (random() 0.35 &#43; 0.6)

right(b)

tree(n - 1, d)

left(b &#43; c)

tree(n - 1, d)

right(c)

else:

right(90)

n &#61; cos(radians(heading() - 45)) / 4 &#43; 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()

原文地址&#xff1a;https://blog.51cto.com/14513127/2468049


推荐阅读
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 本文探讨了基于点集估算图像区域的Alpha形状算法在Python中的应用。通过改进传统的Delaunay三角剖分方法,该算法能够生成更加灵活和精确的形状轮廓,避免了单纯使用Delaunay三角剖分时可能出现的过大三角形问题。这种“模糊Delaunay三角剖分”技术不仅提高了形状的准确性,还增强了对复杂图像区域的适应能力。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 通过使用 `pandas` 库中的 `scatter_matrix` 函数,可以有效地绘制出多个特征之间的两两关系。该函数不仅能够生成散点图矩阵,还能通过参数如 `frame`、`alpha`、`c`、`figsize` 和 `ax` 等进行自定义设置,以满足不同的可视化需求。此外,`diagonal` 参数允许用户选择对角线上的图表类型,例如直方图或密度图,从而提供更多的数据洞察。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • HTML 页面中调用 JavaScript 函数生成随机数值并自动展示
    在HTML页面中,通过调用JavaScript函数生成随机数值,并将其自动展示在页面上。具体实现包括构建HTML页面结构,定义JavaScript函数以生成随机数,以及在页面加载时自动调用该函数并将结果呈现给用户。 ... [详细]
  • 机器学习中的标准化缩放、最小-最大缩放及鲁棒缩放技术解析 ... [详细]
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 在CentOS 6.5环境中,本文详细介绍了如何配置SSH无密钥登录,并成功执行PSSH命令。首先,确保系统已安装PSSH工具,可使用 `yum install pssh` 进行安装。若未配置免密钥登录,PSSH命令将无法正常执行,例如尝试运行 `pssh -H root@192.168.245.129 -i uptime` 时会失败。通过生成并分发SSH公钥,可以实现无密码登录,从而顺利执行PSSH命令。此外,本文还提供了详细的步骤和常见问题的解决方案,帮助用户顺利完成配置。 ... [详细]
  • 点互信息在自然语言处理中的应用与优化
    点互信息(Pointwise Mutual Information, PMI)是一种用于评估两个事件之间关联强度的统计量,在自然语言处理领域具有广泛应用。本文探讨了 PMI 在词共现分析、语义关系提取和情感分析等任务中的具体应用,并提出了几种优化方法,以提高其在大规模数据集上的计算效率和准确性。通过实验验证,这些优化策略显著提升了模型的性能。 ... [详细]
author-avatar
micheals
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有