日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab绘制跳动的心

發布時間:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab绘制跳动的心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信不少程序猿在情人節,被女票要求用程序語言編寫表白程序。我參考網上的資料,用matlab編寫了心跳的動畫。

下圖是網上流傳的心形數學表達式:

我覺得最后一個表達式跟傳統的心形是最像的,這個表達式是用極坐標表示的,編寫和控制極為方便。第二個心形表達式也比較像,但是這個表達式使用了隱函數,編寫并控制起來不容易。

由于最后一個心形圖案的中心點在十字交叉部分,要讓心形圖案跳動起來,只需要控制心形圖案隨時間變化而改變大小。為了打造生動的跳動動作,我用分段三角函數來模擬跳動幅度,當然也可以直接提供你自己心跳的曲線函數。

Matlab中提供movie函數用于制作動畫,以及cla函數用于擦除所有當前繪制的圖案。為了效率可以只擦除必要的部分。

gcp=figure; M=moviein(100,gcp); heartSpeed=15; radiusRate=3;for i = 1:100axis([-20 20 -20 20]);cla(gcp);x=[];y=[];for t = 0:0.01:2*pir=(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))];endhold on;fill(x,y,'r');M(:,i)=getframe; end movie(M,1);
function ratio=HeartRate(i,heartSpeed) i=mod(i,heartSpeed); if i < heartSpeed / 2ratio=sin( i/heartSpeed*pi); elseif i >= heartSpeed / 2 && i < heartSpeed * 3/4ratio=2*cos(i/heartSpeed*2/3*pi); elseratio = 0; end

在很多計算機圖形學領域里面,sin函數經常被用來模擬現實中的振動和波動,比如nehe的opengl教程里面,可以用sin函數模擬人走路時身體的上下擺動。

總結

以上是生活随笔為你收集整理的Matlab绘制跳动的心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。