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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
python中迭代器(iterator)用法实例分析
Apr 29 Python
Tensorflow简单验证码识别应用
May 25 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
python zip()函数的使用示例
Sep 23 Python
浅析Python的命名空间与作用域
Nov 25 Python
Python函数对象与闭包函数
Apr 13 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
python链接Oracle数据库的方法
2015/06/28 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
python中实现栈的三种方法
2020/12/19 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
幼儿园义卖活动方案
2014/01/17 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
无房证明范本
2014/09/17 职场文书
个人专业技术总结
2015/03/05 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android