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之编写类之三子类
Oct 11 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
python中类的属性和方法介绍
Nov 27 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
浅谈python中的多态
Jun 15 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
php递归实现无限分类的方法
2015/07/28 PHP
YII框架常用技巧总结
2019/04/27 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
python中sys模块是做什么用的
2020/08/16 Python
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
中专生职业生涯规划书范文
2013/12/29 职场文书
初中美术教学反思
2014/01/29 职场文书
大学生村官承诺书
2014/03/28 职场文书
研讨会主持词
2014/04/02 职场文书