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中使用next()方法操作文件的教程
May 24 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python中 map()函数的用法详解
Jul 10 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
Python根据指定文件生成XML的方法
Jun 29 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 Python
Python基本知识点总结
Apr 07 Python
Python OpenCV形态学运算示例详解
4种方法python批量修改替换列表中元素
Apr 07 #Python
Python+OpenCV实现图片中的圆形检测
Python中文分词库jieba(结巴分词)详细使用介绍
基于Python实现对比Exce的工具
Apr 07 #Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Python OpenCV之常用滤波器使用详解
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
js数据类型检测总结
2018/08/05 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python 实现堆排序算法代码
2012/06/05 Python
深入学习Python中的装饰器使用
2016/06/20 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python可视化实现代码
2019/01/15 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python web框架 django wsgi原理解析
2019/08/20 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Python3 集合set入门基础
2020/02/10 Python
python中setuptools的作用是什么
2020/06/19 Python
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
八年级语文教学反思
2014/02/11 职场文书
物理教育专业求职信
2014/06/25 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
Nginx反向代理学习实例教程
2021/10/24 Servers
MySQL普通表如何转换成分区表
2022/05/30 MySQL
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android