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中for语句简单遍历数据的方法
May 07 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
python实现在线翻译
Jun 18 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
php设计模式 Visitor 访问者模式
2011/06/28 PHP
php中cookie的使用方法
2014/03/29 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
js 调整select 位置的函数
2008/02/21 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
数控技术应届生求职信
2013/11/13 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
详解JS数组方法
2021/11/20 Javascript