Python实现银杏树绘制与效果展示

news/2024/12/15 6:59:39/

银杏树,因其形态优美、叶片独特而被人们喜爱。银杏的叶子呈扇形,秋天时叶片呈现出金黄的色彩,成为秋季的代表之一。今天,我们将使用Python的turtle库来绘制一棵具有银杏树🍂特色的树。 通过编写Python代码,我们将模拟银杏树的树干、树枝、叶子等细节,最终呈现出一棵生动的银杏树🍂。
在这里插入图片描述

我们将利用Python的turtle库来绘制银杏树🍂。首先,我们会画出树干和树枝,然后用颜色填充银杏的扇形叶子,使其看起来更加自然。

🔥以下是实现银杏树🍂的完整代码:

from turtle import *
from random import *
from math import *
def ginkgo_tree(n, l):pd()  # 下笔# 阴影效果,使用深黄色系,优化颜色计算t = (cos(radians(heading() + 45)) / 8 + 0.3) * 0.8pencolor(t, t * 0.7, 0)  # 让颜色更接近银杏叶的颜色if n > 5:  # 当 n 大于 5 时,使树干更粗pensize(max(n / 2, 5))  else:pensize(max(n / 3, 1))  # 确保树枝有最小粗细forward(l)  # 画树枝if n > 0:b = random() * 20 + 5  # 调整分支偏转角度范围c = random() * 20 + 5d = l * (random() * 0.3 + 0.6)  # 调整下一个分支的长度范围# 右转一定角度, 画右分支right(b)ginkgo_tree(n - 1, d)# 左转一定角度,画左分支left(b + c)ginkgo_tree(n - 1, d)# 转回来right(c)else:# 画叶子right(90)# 银杏叶子使用黄色,更鲜明的黄色pencolor("#FFD700")# 绘制扇形的银杏叶,优化叶子形状begin_fill()fillcolor("#FFD700")for i in range(3):circle(8, 120)  # 增大叶子尺寸left(120)end_fill()left(90)# 添加 0.3 倍的飘落叶子if (random() > 0.7):pu()# 飘落t = heading()an = -45 + random() * 90  # 调整飘落角度范围setheading(an)dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)forward(dis)setheading(t)# 画叶子pd()right(90)# 飘落叶子的颜色稍淡pencolor("#FFEC8B")  # 更淡的黄色# 绘制飘落的扇形叶子,优化形状begin_fill()for i in range(3):circle(5, 120)  # 调整飘落叶子尺寸left(120)end_fill()left(90)pu()# 返回t = heading()setheading(an)backward(dis)setheading(t)pu()backward(l)  # 退回
bgcolor("white")  # 把背景色换成天空蓝
ht()  # 隐藏 turtle
speed(0)  # 速度 1-10 渐进,0 最快
tracer(0, 0)
pu()  # 抬笔
backward(50)
left(90)  # 左转 90 度
pu()  # 抬笔
backward(300)  # 后退 300
ginkgo_tree(12, 100)  # 递归 7 层
done()

🔥效果图如下:
在这里插入图片描述


http://www.ppmy.cn/news/1555233.html

相关文章

总结与提升

今天学习了ai,对今天学习的内容进行总结。 本文参考chat gpt-4的训练文献。 模型架构基础 Transformer 架构:ChatGPT 采用了 Transformer 架构,这是一种基于自注意力机制的深度学习模型架构。它能够并行计算文本中的长期依赖关系&#xff…

量化分析:股票的筹码分布和获利比例

筹码分布 筹码分布是股票分析里面的一个比较简单的部分,通过查看筹码的分布图形,判断当前的股票的压力的指数,通过查看获利的比例来计算有多少人愿意出,有多少人愿意保持价格 目前的很多工具也是可以直接去查看的,但…

02-51单片机的C语言基础与最小系统

C语言基础 一个简单的单片机C程序要有什么 #include<reg51.h> void main() {while(1){} }C语言中常用语句略&#xff0c;if,while,do…while,for,switch…case 函数略 C&#xff0d;51的数据类型扩充定义 sfr:特殊功能寄存器声明sfr 变量名地址值&#xff1b;*特殊功…

从万维网到人工智能:改变生活的11项技术里程碑

1984 年 1 月 24 日&#xff0c;苹果公司推出了 Macintosh 128K&#xff0c;从此永远改变了个人电脑的面貌。 史蒂夫・乔布斯&#xff08;Steve Jobs&#xff09;这款小巧且用户友好的电脑向全世界引入了图形用户界面&#xff0c;标志着个人技术发展历程中的一个关键时刻。 从…

笔墨游戏 蒙养生活 了解林曦老师的中国画美育直播课

你觉得&#xff0c;美是什么?一张画&#xff0c;一个雕塑&#xff0c;一段音乐      是&#xff0c;也不仅仅是这样      “美者&#xff0c;甘也”美&#xff0c;是一种甘甜的味道      是对生活的兴味与体验它关乎一种畅达而自如的人生在林曦老师的中国画美育课…

【0x000A】HCI_Reject_Connection_Request命令详解

目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Reject_Connection_Request命令格式 2.2. 参数说明 2.2.1. BD_ADDR&#xff08;蓝牙设备地址&#xff09; 2.2.2. Reason&#xff08;拒绝原因&#xff09; 三、返回事件及参数说明 3.1. 返回参数 3.2. 生成的事件…

Flink一些常用API的使用(Flink中的Source以及Flink中的一些常用算子)

文章目录 一、Source1、预定义Source2、自定义Source【重要】3、Kafka Source【重要】 二、Transformation-转换算子1、union和connect-合并和连接2、Side Outputs&#xff08;侧道输出&#xff09;--分流 一、Source 1、预定义Source 基于本地集合的source&#xff08;Colle…

Vue前端开发-axios对象实例创建和配置的过程

在Vue 3中&#xff0c;由于所有的组件都可能去请求数据&#xff0c;因此&#xff0c;针对axios模块的配置应该是全局性的&#xff0c;在进行axios模块的全局配置之前&#xff0c;需要了解axios实例的创建、配置对象和响应对象的结构内容&#xff0c;接下来我们分别来进行介绍。…