Matlab绘制跳动的心
相信不少程序猿在情人節(jié),被女票要求用程序語(yǔ)言編寫(xiě)表白程序。我參考網(wǎng)上的資料,用matlab編寫(xiě)了心跳的動(dòng)畫(huà)。
下圖是網(wǎng)上流傳的心形數(shù)學(xué)表達(dá)式:
我覺(jué)得最后一個(gè)表達(dá)式跟傳統(tǒng)的心形是最像的,這個(gè)表達(dá)式是用極坐標(biāo)表示的,編寫(xiě)和控制極為方便。第二個(gè)心形表達(dá)式也比較像,但是這個(gè)表達(dá)式使用了隱函數(shù),編寫(xiě)并控制起來(lái)不容易。
由于最后一個(gè)心形圖案的中心點(diǎn)在十字交叉部分,要讓心形圖案跳動(dòng)起來(lái),只需要控制心形圖案隨時(shí)間變化而改變大小。為了打造生動(dòng)的跳動(dòng)動(dòng)作,我用分段三角函數(shù)來(lái)模擬跳動(dòng)幅度,當(dāng)然也可以直接提供你自己心跳的曲線函數(shù)。
Matlab中提供movie函數(shù)用于制作動(dòng)畫(huà),以及cla函數(shù)用于擦除所有當(dāng)前繪制的圖案。為了效率可以只擦除必要的部分。
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
在很多計(jì)算機(jī)圖形學(xué)領(lǐng)域里面,sin函數(shù)經(jīng)常被用來(lái)模擬現(xiàn)實(shí)中的振動(dòng)和波動(dòng),比如nehe的opengl教程里面,可以用sin函數(shù)模擬人走路時(shí)身體的上下擺動(dòng)。
總結(jié)
以上是生活随笔為你收集整理的Matlab绘制跳动的心的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dya6 列表的相关函数
- 下一篇: FBI针对Tor网络的恶意代码分析