下雪啦 也用Matlab实现大雪纷飞 Matlab雪花

先看效果!

0.前言

今天,这个冬天的第一场雪,来了。

对于在南方生活的孩子来说,对于下雪天总有一种莫名的期待,下雪天可以打雪仗、堆雪人,三五成群的总是会玩得很开心。下雪天,浪漫而又美丽。

今天,很多城市都下雪了,#长沙下雪# 也登上了热搜,如果你所在的城市没有下雪,是不是期待这个冬天有一场雪降临在你的城市呢?

都说Matlab除了不会生孩子,其他都会,那么TA会下雪吗?

1.准备工作

安装好Matlab,且对Matlab运行概念具备一定的认知。

2.动起手来

首先,布个景吧,为了让白色的雪显得真实一点,先建立一个深色的背景,让雪花飘在这个背景上。

obj.fh = figure('Color', 'black', ...

                'Tag', 'snowFig', ...

                'NumberTitle', 'off', ...

                'Name', '瑞雪兆丰年!公众号:海洋纪', ...

                'Menu', 'none', ...

                'DockControl', 'off', ...

                'Units', 'pixels', ...

                'HandleVisibility', 'on');

然后,再在这个背景上新建一个待会儿下雪用到的的axes,可以认为是在背景板上多加了一个图层,一般Matlab新建一个图层都是自带tick的,把这个tick设置为空。

snow_axes_hdl = axes('Parent', obj.fh, ...

'Units', 'normalized', ...

'Position', [0 0 1 1], ...

'Color', [0 0 0], ...

'XLim', [0 1], ...

'YLim', [0 1], ...

'NextPlot','add', ...

'Visible', 'off', ...

'XTick', [], ...

'YTick', []);

设置一些雪花的基础信息,雪花多少片,大小,颜色等。

尝试改一改这些参数看看效果如何。

fps = 25;
sf_color =0.9;
% - For snowflakes -
num_snowflakes = 150;
snowflakes_size = 11;
snowflakes_color = sf_color.*[1 1 1];
height_range = 3;

关键的是雪花要动起来,那么他就得以一定的速度和方向运动,这里让速度和方向是随机的值。

snowflakes_x = rand(1, num_snowflakes);
snowflakes_y = rand(1, num_snowflakes);
snowflakes_y = (snowflakes_y .* height_range.^3).^(1/3)+1;
snowflakes_v = rand(1, num_snowflakes).0.1 + 0.1;  % (distance per second)
snowflakes_theta = (rand(1, num_snowflakes).60 + 240).*pi/180;

接下来是重头戏啦,为什么能让雪花动态的运动?

建立一个Matlab的定时器(timer),这是Matlab实现大雪纷飞的关键部分,有兴趣的同志可以多去了解一下定时器相关功能。

obj.snow_timer = timer('TimerFcn', @obj.updateSnow_Callback,...

'ExecutionMode','fixedRate',...

'Period', 1./fps, 'BusyMode', 'queue');

最后,启动定时器即可。

start(obj.snow_timer);

3.结语

简单的介绍了一下Matlab实现大雪纷飞效果的代码。

大家可以根据自己的想法在这个基础上改进,在实现过程中Matlab技能也能一点点进步。

祝大家玩得开心。

关注作者公众号 海洋纪 ,后台回复 雪 获取本文代码。

Original: https://blog.csdn.net/liu08_13/article/details/122161907
Author: 看海实验室
Title: 下雪啦 也用Matlab实现大雪纷飞 Matlab雪花

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644821/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球