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进阶教程之动态类型详解
Aug 30 Python
Python中常见的数据类型小结
Aug 29 Python
python常用函数详解
Sep 13 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
Django实现文件上传下载
Oct 06 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
python 实现的截屏工具
May 08 Python
python图片灰度化处理的几种方法
Jun 23 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JS功能代码集锦
2016/05/04 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
Array.filter中如何正确使用Async
2020/11/04 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python抽象基类用法实例分析
2015/06/04 Python
回调函数的意义以及python实现实例
2017/06/20 Python
Python清空文件并替换内容的实例
2018/10/22 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
基于python实现名片管理系统
2018/11/30 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
关于Python解包知识点总结
2020/05/05 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
音乐幼师求职信
2014/07/09 职场文书
考研经验交流会策划书
2015/11/02 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers