相信不少程序猿在情人节,被女票要求用程序语言编写表白程序。我参考网上的资料,用matlab编写了心跳的动画。

下图是网上流传的心形数学表达式:

我觉得最后一个表达式跟传统的心形是最像的,这个表达式是用极坐标表示的,编写和控制极为方便。第二个心形表达式也比较像,但是这个表达式使用了隐函数,编写并控制起来不容易。

由于最后一个心形图案的中心点在十字交叉部分,要让心形图案跳动起来,只需要控制心形图案随时间变化而改变大小。为了打造生动的跳动动作,我用分段三角函数来模拟跳动幅度,当然也可以直接提供你自己心跳的曲线函数。

Matlab中提供movie函数用于制作动画,以及cla函数用于擦除所有当前绘制的图案。为了效率可以只擦除必要的部分。

gcp=figure;

M=moviein(100,gcp);

heartSpeed=15;

radiusRate=3;

for i = 1:100

axis([-20 20 -20 20]);

cla(gcp);

x=[];

y=[];

for t = 0:0.01:2*pi

r=(sin(t)*sqrt(abs(cos(t))))/(sin(t)+7/5)-2*sin(t)+2;

r = radiusRate * r;

x=[x,r*cos(t)*(0.5+0.5*HeartRate(i,heartSpeed))];

y=[y,r*sin(t)*(0.5+0.5*HeartRate(i,heartSpeed))];

end

hold on;

fill(x,y,'r');

M(:,i)=getframe;

end

movie(M,1);

function ratio=HeartRate(i,heartSpeed)

i=mod(i,heartSpeed);

if i < heartSpeed / 2

ratio=sin( i/heartSpeed*pi);

elseif i >= heartSpeed / 2 && i < heartSpeed * 3/4

ratio=2*cos(i/heartSpeed*2/3*pi);

else

ratio = 0;

end

在很多计算机图形学领域里面,sin函数经常被用来模拟现实中的振动和波动,比如nehe的opengl教程里面,可以用sin函数模拟人走路时身体的上下摆动。

matlab跳动的心脏,Matlab绘制跳动的心相关推荐

  1. html跳动的小球,canvas绘制跳动的小球

    动画反弹 *{ margin:0; padding:0; } canvas1{ box-shadow: 0px 0px 10px red; position: absolute; left:50px; ...

  2. 用matlab绘制跳动的心

    用matlab绘制跳动的心(自学留存) https://blog.csdn.net/JasonTube/article/details/108206616?utm_medium=distribute. ...

  3. 利用MATLAB绘制各种表白心形-跳动心形

    利用MATLAB绘制各种表白心形♥ 跳动三维心形 表白情人节必备 面向工科屌丝男 固定心形的各种画法见下面连接 链接: https://blog.csdn.net/weixin_44044161/ar ...

  4. 【转】MATLAB的polar函数 极坐标绘制最大半径怎样设置

    https://zhidao.baidu.com/question/262590480477498125.html MATLAB的polar函数 极坐标绘制最大半径怎样设置,类似于plot用axis( ...

  5. plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

    Matlab在任意两点之间绘制三维圆柱 Matlab在任意两点之间绘制三维圆柱 此函数可能存在一些不足,请多多指教! function plotcylinder(u1,u2,color_a,r) L= ...

  6. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

    如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...

  7. Matlab:数学之美--绘制分形图形

    Matlab:数学之美–绘制分形图形 学习最好的动力是兴趣,所以我们先看看效果: 这一篇与Java学习日记:数学之美-分形图形绘制有共同之处,只是所用的工具不同. clear; %不同的参数有不同的图 ...

  8. MATLAB绘制笛卡尔心形线---by CSDN ChitGPT AI大模型

    以下是MATLAB代码,用于绘制笛卡尔心形线: t = linspace(0, 2*pi); x = 16.*sin(t).^3; y = 13.*cos(t)-5.*cos(2*t)-2.*cos( ...

  9. MATLAB采用双坐标轴同时绘制柱状图和折线图

    利用MATLAB同时绘制柱状图和折线图,其中柱状图表示温度,折线图表示颗粒物浓度,左侧y轴表示温度(单位摄氏度),右侧y轴表示颗粒物浓度(个/每立方米). MATLAB plotyy 方法/步骤 第一 ...

最新文章

  1. centos 安装2个mysql_CentOs服务器下安装两个个MySql数据库踩坑日记
  2. 亿万级图数据库 Nebula Graph 的数据模型和系统架构设计
  3. Centos下使用Docker部署asp.net core项目
  4. 北京/上海内推 | 字节跳动AI Lab招聘NLP算法模型优化方向实习生
  5. Codeforces Gym 100286I iSharp 模拟
  6. spark集群搭建整理之解决亿级人群标签问题
  7. js函数、事件、补充知识
  8. Linux C enum
  9. python可视化(十种常用图)
  10. HDU 2079 (母函数)
  11. 批量删除QQ空间说说代码
  12. python贡献度分析以及相关性分析小例子
  13. 网吧电影视频服务器架设完全入门教程(转)
  14. RS232接口转USB接口的通信方法
  15. 网络线上教育快速发展,CDN高防能否胜任服务器安全防护任务?
  16. 智能时代为什么需要区块链技术?
  17. XGBOOST + LR 模型融合 python 代码
  18. Jsoup组件抓取HTML标签
  19. SAP 收货相关后台配置
  20. 浙大计算机学些什么,浙江大学首批招收人工智能专业 学什么,要怎么教?

热门文章

  1. 用 Ninja and GN 来加速 C++构建
  2. 蛮力法-分治法-处理最近对问题
  3. 微医网爬虫(一) java实现
  4. word 中公式显示不全行距调整
  5. STM32F0xx_PWR低功耗配置详细过程
  6. [.NET基础]走进各种位运算
  7. dropout_keep_prob
  8. 「面试必背」Redis面试题(2022最新版)
  9. java生成算数表达式_惊!小学生要失业了,Java实现生成并计算四则运算表达式。...
  10. 完善三维全栈产品布局 的卢深视用三维全栈技术点亮2020全球智博会