Python 樱花

news2024/11/17 12:54:51

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1073201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试经典 150 题 1 —(数组 / 字符串)— 88. 合并两个有序数组

88. 合并两个有序数组 方法一&#xff1a; class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {for(int i 0; i<n;i){nums1[mi] nums2[i];}sort(nums1.begin(),nums1.end());} };方法二&#xff1a; clas…

CRMEB 标准版商城系统新增主题风格颜色【超级完整教程】

一、后台 1.新增主题图片 assets/images/brown.jpg和assets/images/brownsign.png 2.修改admin/src/pages/setting/themeStyle/index.vue 3.修改admin/src/pages/marketing/sign/index.vue 4.修改admin/src/pages/system/group/visualization.vue &#xff08;第三步和第四步…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…

企业APP混乱繁杂?WorkPlus助您实现统一入口管理

在现代企业中&#xff0c;随着移动应用的不断发展和应用&#xff0c;公司内部往往存在着各种各样的APP。这些APP不仅需要单独下载和安装&#xff0c;而且管理起来也显得非常繁琐。为了解决这一问题&#xff0c;公司统一APP入口逐渐成为了企业的追求。而在众多选择中&#xff0c…

充电保护芯片TP4054国产替代完全兼容DP4054DP4054H 锂电充电芯片

■产品概述 DP4054H是-款完整的采用恒定电流/恒定电压单节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件&#xff0c;DP4054H可 以适合USB电源和适配器电源工作。 由于采用了内部PMOSFET架构&#xff0c;加上防倒充电路,所以不需要外…

一文图解Golang管道Channel

在 Go 语言发布之前&#xff0c;很少有语言从底层为并发原语提供支持。大多数语言还是支持共享和内存访问同步到 CSP 的消息传递方法。Go 语言算是最早将 CSP 原则纳入其核心的语言之一。内存访问同步的方式并不是不好&#xff0c;只是在高并发的场景下有时候难以正确的使用&am…

CTF | CTF比赛题解分享

本文由掌控安全学院 - sbhglqy 投稿 前言&#xff1a;由于此次比赛的题目较多&#xff0c;所以这是这个比赛的第一篇wp&#xff0c;共20题&#xff0c;先记录一下&#xff0c;防止忘记。里面有些题目是新手题较为简单&#xff0c;但也有许多有意思的题目&#xff0c;真的是做的…

N个元素进栈 出栈情况种数

文章目录 1.逐一求解2.卡特兰数的引入3.得出结论 1.逐一求解 面对此类问题 我们无法直接分析元素个数 为N的情况 通常我们都会逐一分析 设定一个函数 f(N):N为元素个数 f(N)为出栈顺序种数 显然: f(1) 1:af(2) 2:a,b b,af(3) 5:a,b,c a,c,b b,a,c b,c,a /*c,a,b*/ …

【血压仪器】开发血压计方案pcba电路板

血压计方案测量准确&#xff0c;语音播报结果&#xff0c;大屏幕&#xff0c;显示更清晰&#xff0c;算法经过大量临床测试&#xff0c;更稳定等特点&#xff0c;另外对于此类方案&#xff0c;由于已经拥有成熟方案&#xff0c;可配合客户需求开发设计&#xff0c;可以在短时间…

opencv-phase 函数

计算梯度强度和方向 梯度的方向与边缘的方向总是垂直的。图像中的边缘可以指向各个方向&#xff0c;通常会取水平&#xff08;左、右&#xff09;、垂直&#xff08;上、下&#xff09;、对角线&#xff08;左上、右上、左下、右下&#xff09;等八个不同的方向计算梯度。 角度…

gds/网表导入virtuoso注意事项

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口 gds和网表导入到virtuoso中都需要添加参考库,这里需要注意的是如果上层模块/顶层调用下层模块时参考库时,需要把library中的模块cell的单独copy到新的库中,模块的via layout或module schematic和sy…

将一个shapefile 由地理坐标系统投影到投影坐标系统

如题&#xff1a; 所需数据&#xff1a; idll.shp&#xff0c;一个以十进制度表示经纬度数值的shapefile&#xff0c;为Idaho 州的轮廓图。 任务要求: 定义idll.shp空间参考为地理坐标系North American Datum 1927&#xff0c;并将idll.shp 投影到Idaho 州横轴墨卡托&#xf…

桶装水一键订水系统,支持通过手机端一键订水票;

桶装水一键订水系统&#xff0c;支持通过手机端一键订水票、模版消息推送送水状态&#xff0c;支持门店送水员一键接单送水&#xff0c;上门核销完成送水过程的专业送水(订水)系统&#xff1b; 桶装水订水送水系统&#xff08;多门店版&#xff09; 1、专属门店 在线建立专属门…

MATLAB算法实战应用案例精讲-【图像处理】SLAM技术详解

目录 前言 几个高频面试题目 SLAM和路径规划对比 算法原理 SLAM组成 常用的SLAM传感器 常用的两种地图类型 SLAM算法实现4要素 主流SLAM算法 2D激光SLAM算法 1. Gmapping 2. Hector slam 3. KartoSLAM 4. LagoSLAM 5. CoreSLAM 3D激光SLAM算法对比 测试的SLAM…

SpringBoot项目整合

一、创建项目 IDEA中采用spring initialzer...创建&#xff0c;jdk选择8&#xff0c;maven,jar。。。springboot版本2.5.0&#xff08;稳定&#xff09; 项目依赖&#xff1a; 二、项目结构&#xff1a; 原始pom.xml文件 <?xml version"1.0" encoding"UT…

Java基础篇 数组

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

[VC++]圆形进度条

[VC]圆形进度条 源码开发环境&#xff1a;VC6.0 WIN10 64位下编译通过利用绘制饼图的原理&#xff0c;来制作的圆形进度条&#xff0c;可以显示百分比。软件运行截图如下&#xff1a; 附件源码下载(点击下载&#xff09;

低投入,高产出的数字人直播间软件强势“出圈”,铭顺科技带你一探究竟

数字人直播的魅力在于它的独特性&#xff0c;通过先进的数字技术&#xff0c;创作者可以打造自己独一无二的数字形象&#xff0c;让观众与其互动。 与传统的直播相比&#xff0c;数字人直播模式的投入成本相对较低&#xff0c;却能获得高额产出。传统直播需要大量的设备、场地…

ROS2创建工作区

ROS2创建工作区 ros2官方使用colcon工具来进行代码编译&#xff0c;首先需要安装colcon&#xff1a; sudo apt install python3-colcon-common-extensions创建工作区&#xff1a; mkdir -p ~/ros2_ws/src cd ~/ros2_ws进入src文件夹下拉取一部分例子代码&#xff1a; cd ~/…

RK3568笔记二:部署手写数字识别模型

若该文为原创文章&#xff0c;转载请注明原文出处。 环境搭建参考RK3568笔记一&#xff1a;RKNN开发环境搭建-CSDN博客 一、介绍 部署手写数字识别模型&#xff0c;使用手写数字识别&#xff08;mnist&#xff09;数据集训练了一个 LENET 的五层经典网络模型。Lenet是我们的…