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采集腾讯新闻实例
Jul 10 Python
python实现比较两段文本不同之处的方法
May 30 Python
Python正则表达式经典入门教程
May 22 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
numpy中的ndarray方法和属性详解
May 27 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
python自动翻译实现方法
2016/05/28 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
python读取与处理netcdf数据方式
2020/02/14 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
Delphi笔试题
2016/11/14 面试题
数控技术专业毕业自荐书范文
2014/02/05 职场文书
班主任对学生的评语
2014/04/26 职场文书
电力培训心得体会
2014/09/02 职场文书
教师节班会主持词
2015/07/06 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
《将心比心》教学反思
2016/02/23 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python