Python&Matlab实现樱花的绘制


Posted in Python onApril 07, 2022

1.锦短情长

为什么选择这个标题,借鉴了一封情书里面的情长纸短,还吻你万千

Python&Matlab实现樱花的绘制

锦短情长

都只谓人走茶凉,怎感觉锦短情长?

一提起眼泪汪汪,是明月人心所向?

2. 一场樱花雨(Matlab)

Python&Matlab实现樱花的绘制

function pingba
hold on,axis equal
axis(0.5+[-10,50,0,50])
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')
set(gca,'color',[0.5020    0.5020    0.5020])
 
length_trunk=6;
width_trunk=4;
k1=0.9;
k2=0.8;
number_branch=15;
alp=pi/10;
length_branch=k1*length_trunk;
width_branch=k2*width_trunk;
trunk=[12,0;12,length_trunk];
plot(trunk(:,1),trunk(:,2),'color',[0 0 0],'Linewidth',width_trunk)
begins=[trunk(2,:),pi/2,1];
grow=begins;
plotdata=[0 0 0 0 0 0 0 0];
plotdata(1,:)=[];
for i=1:number_branch
    control=randi(25,[length(grow(:,1)),1])>=10;
    ag=grow(:,3);
    l=length(ag);
    parta=[length_branch.*k1.^grow(:,4).*cos(ag+ones(l,1)*alp),length_branch.*k1.^grow(:,4).*sin(ag+ones(l,1)*alp),ones(l,1)*alp,ones(l,1)];
    partb=[length_branch.*k1.^grow(:,4).*cos(ag-ones(l,1)*alp),length_branch.*k1.^grow(:,4).*sin(ag-ones(l,1)*alp),-ones(l,1)*alp,ones(l,1)];
    parta2=[0.8.*length_branch.*k1.^grow(:,4).*cos(ag),0.8.*length_branch.*k1.^grow(:,4).*sin(ag),zeros(l,1),ones(l,1)];
    partb2=[0.8.*length_branch.*k1.^grow(:,4).*cos(ag),0.8.*length_branch.*k1.^grow(:,4).*sin(ag),zeros(l,1),ones(l,1)];
    parta=control.*parta+(1-control).*parta2;
    partb=control.*partb+(1-control).*partb2;
    parta=parta+grow;
    partb=partb+grow;
    congress=[parta;partb];
    grow=[grow;grow];
    judge=[grow,congress];
    judge=unique(judge,'rows');
    grow=judge(:,5:end);
    plotdata=[plotdata;judge];
end
for i=1:number_branch
    temp_w=width_branch*0.8^i;
    temp_branch=plotdata(plotdata(:,4)==i,:);
    plx=[temp_branch(:,1),temp_branch(:,5)];
    ply=[temp_branch(:,2),temp_branch(:,6)];
    plx=plx';ply=ply';
    plot(plx,ply,'color',[0 0 0]+i*[0.3020 0.3020 0.3020]./number_branch,'Linewidth',temp_w)
end
 
bloom_pos=plotdata(plotdata(:,8)==number_branch+1,[5,6]);
scatter(bloom_pos(:,1),bloom_pos(:,2),10,'CData',[0.8549    0.6824    0.6824])
bloom_pos=plotdata(plotdata(:,8)==number_branch,[5,6]);
scatter(bloom_pos(:,1),bloom_pos(:,2),8,'CData',[0.7451    0.5961    0.5961].*0.97)
end

3.樱花树(Python)

Python&Matlab实现樱花的绘制

import turtle as T
import random
import time
 
#=======画樱花的躯干(60,t)===============
T.title('凋落的樱花')
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()

到此这篇关于Python&Matlab实现樱花的绘制的文章就介绍到这了,更多相关Python Matlab樱花内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现socket客户端和服务端简单示例
Feb 24 Python
Web服务器框架 Tornado简介
Jul 16 Python
python中字符串前面加r的作用
Jun 04 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python实现定时任务
Feb 08 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
Python连接字符串过程详解
Jan 06 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
详解vue 组件注册
2020/11/20 Vue.js
python之wxPython应用实例
2014/09/28 Python
Python操作Excel之xlsx文件
2017/03/24 Python
利用python获取Ping结果示例代码
2017/07/06 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python实现分段线性插值
2018/12/17 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
Python中turtle库的使用实例
2019/09/09 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
Java servlet面试题
2012/03/04 面试题
办公室内勤岗位职责范本
2013/12/09 职场文书
开办化妆品公司创业计划书
2013/12/26 职场文书
学生周末长期请假条
2014/02/15 职场文书
企业管理标语
2014/06/10 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
辩护词格式
2015/05/22 职场文书
微观世界观后感
2015/06/10 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
重阳节主题班会
2015/08/17 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
2022漫威和DC电影上映作品
2022/04/05 欧美动漫