無聊之際用C#寫了一個彈性物體碰撞模擬玩玩。這個想法源自與前幾天上機課有人想我在機房做一個透視投影的程序,于是就立刻寫了個投影并弄了個線框球上去跳。結(jié)果我就想,如果物體有彈性會怎么樣呢?回到宿舍就實踐想法。
這個程序是2D的,用C#主要是因為GDI+寫起來比較方便,至少比可憐的MFC好用,雖然C#的東西又慢又占用CPU使用率。我發(fā)誓.NET的Timer肯定不是用WM_TIMER消息搞的,空轉(zhuǎn)占用CPU都那么高,而且用Sleep還降低不了。過高的CPU占用率持續(xù)過久會導致CPU溫度升高……
程序現(xiàn)在還有點問題。譬如物理引擎經(jīng)典問題:浮點誤差和碰撞穿透。現(xiàn)在還沒100%處理好,雖然絕大多數(shù)情況下是沒什么事。第二個就是因為彈性超出了我的物理知識范圍,所以碰撞的速度更高暫時亂寫,等過幾天有空解一個三元二次方程組之后再改改代碼。
先放截圖三張,等程序改好了之后再把代碼弄出來。這個東西很好玩的,嘿嘿。考慮了重力哦。
一:創(chuàng)建了兩個有彈性7邊形
二:左邊的對象撞到了墻上
三:右邊的對象撞了地面
我曾經(jīng)把彈性調(diào)的很小,邊數(shù)調(diào)得很大,結(jié)果出現(xiàn)了類似充水氣球的東西……
posted on 2008-06-05 09:30
陳梓瀚(vczh) 閱讀(5714)
評論(9) 編輯 收藏 引用 所屬分類:
.NET