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 30 Python
python3编码问题汇总
Sep 06 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
分析python切片原理和方法
Dec 19 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
python异常处理之try finally不报错的原因
May 18 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
给Django Admin添加验证码和多次登录尝试限制的实现
Jul 26 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
详解python的变量缓存机制
Jan 24 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
javascript 动态创建表格
2015/01/08 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
在Python中处理XML的教程
2015/04/29 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
如何使用repr调试python程序
2020/02/28 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
python在地图上画比例的实例详解
2020/11/13 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
公司庆典邀请函范文
2014/01/13 职场文书
暑期社会实践感言
2014/02/25 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
升学宴学生答谢词
2015/01/05 职场文书
幼师小班个人总结
2015/02/12 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android