C#模擬試驗(yàn):實(shí)現(xiàn)的彈性物體碰撞
無(wú)聊之際用C#寫了一個(gè)彈性物體碰撞模擬玩玩。這個(gè)想法源自與前幾天上機(jī)課有人想我在機(jī)房做一個(gè)透視投影的程序,于是就立刻寫了個(gè)投影并弄了個(gè)線框球上去跳。結(jié)果我就想,如果物體有彈性會(huì)怎么樣呢?回到宿舍就實(shí)踐想法。
這個(gè)程序是2D的,用C#主要是因?yàn)镚DI+寫起來(lái)比較方便,至少比可憐的MFC好用,雖然C#的東西又慢又占用CPU使用率。我發(fā)誓.NET的Timer肯定不是用WM_TIMER消息搞的,空轉(zhuǎn)占用CPU都那么高,而且用Sleep還降低不了。過(guò)高的CPU占用率持續(xù)過(guò)久會(huì)導(dǎo)致CPU溫度升高……
程序現(xiàn)在還有點(diǎn)問(wèn)題。譬如物理引擎經(jīng)典問(wèn)題:浮點(diǎn)誤差和碰撞穿透?,F(xiàn)在還沒(méi)100%處理好,雖然絕大多數(shù)情況下是沒(méi)什么事。第二個(gè)就是因?yàn)閺椥猿隽宋业奈锢碇R(shí)范圍,所以碰撞的速度更高暫時(shí)亂寫,等過(guò)幾天有空解一個(gè)三元二次方程組之后再改改代碼。
先放截圖三張,等程序改好了之后再把代碼弄出來(lái)。這個(gè)東西很好玩的,嘿嘿??紤]了重力哦。
C#模擬(1):創(chuàng)建了兩個(gè)有彈性7邊形
C#模擬(2):左邊的對(duì)象撞到了墻上
C#模擬(3):右邊的對(duì)象撞了地面
我曾經(jīng)把彈性調(diào)的很小,邊數(shù)調(diào)得很大,結(jié)果出現(xiàn)了類似充水氣球的東西……
【編輯推薦】