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中fileno()方法的使用
May 24 Python
python处理大数字的方法
May 27 Python
Python 常用string函数详解
May 30 Python
python3中int(整型)的使用教程
Mar 23 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
python实现智能语音天气预报
Dec 02 Python
PyTorch中的Variable变量详解
Jan 07 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
Python实现播放和录制声音的功能
Aug 12 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
django中的数据库迁移的实现
2020/03/16 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
django下创建多个app并设置urls方法
2020/08/02 Python
建筑班组长岗位职责
2014/01/02 职场文书
运动会入场解说词300字
2014/01/25 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
房贷工资证明范本
2015/06/12 职场文书
公司备用金管理制度
2015/08/04 职场文书
患者身份识别制度
2015/08/06 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫