相信不少程序猿在情人节,被女票要求用程序语言编写表白程序。我参考网上的资料,用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. Python自动化开发学习6
  2. 测试字符串读取类: TStringReader
  3. [Silverlight] UI 测试/UI 自动化相关知识
  4. w3school-html教程笔记-1-20140227
  5. pycharm git gitee 如何将红色文件推送到repository?(将工作区内容添加到暂存区)(git add)
  6. matlab窗函数带通滤波器,Matlab结合窗函数法设计数字带通FIR滤波器
  7. pythoncount函数怎么用_python中count函数简单的实例讲解
  8. 8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令
  9. python Supervisor
  10. scipy.ndimage.filters.gaussian_filter()
  11. markdown简明使用语法
  12. 智能合约语言Solidity教程系列2 - 地址类型介绍
  13. ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新
  14. webdav支持的网盘对比分析
  15. 宁盾无线认证对接锐捷EG3220
  16. mysql 关键字 desc_mysql数据库表字段使用DESC等关键字报错及解决方法
  17. 官宣!成都链安在北京成立分部啦!
  18. 四叉树lod结合灯塔AOI
  19. android glide缺少方法,android - 无法膨胀且找不到类android支持设计的行为BottomSheetBehavior - 堆栈内存溢出...
  20. css实现内容两端对齐

热门文章

  1. 【转】objective-c基本数据类型之输出格式符
  2. 梁宁《产品思维》之27颠覆式创新
  3. STM32 启动代码分析
  4. asp一句话html,asp常用的一句话木马大全
  5. codeforces1153F Serval and Bonus Proble【期望DP】
  6. Leetcode—— 104. 二叉树的最大深度
  7. 帝国cms插件支持7.0/7.2 7.5/UTF-8 微信登入插件 一键登入
  8. JavaScript_BOM浏览器对象模型
  9. android dolphin 手柄,使用安卓手机充当PC上WII模拟器手柄
  10. 2019年,成年人的奔溃来得那么突然,但他们仍选择负重前行