随笔-341  评论-2670  文章-0  trackbacks-0
    无聊之际用C#写了一个弹性物体碰撞模拟玩玩。这个想法源自与前几天上机课有人想我在机房做一个透视投影的程序,于是就立刻写了个投影并弄了个线框球上去跳。结果我就想,如果物体有弹性会怎么样呢?回到宿舍就实践想法。

    这个程序是2D的,用C#主要是因为GDI+写起来比较方便,至少比可怜的MFC好用,虽然C#的东西又慢又占用CPU使用率。我发誓.NET的Timer肯定不是用WM_TIMER消息搞的,空转占用CPU都那么高,而且用Sleep还降低不了。过高的CPU占用率持续过久会导致CPU温度升高……

    程序现在还有点问题。譬如物理引擎经典问题:浮点误差和碰撞穿透。现在还没100%处理好,虽然绝大多数情况下是没什么事。第二个就是因为弹性超出了我的物理知识范围,所以碰撞的速度更高暂时乱写,等过几天有空解一个三元二次方程组之后再改改代码。

    先放截图三张,等程序改好了之后再把代码弄出来。这个东西很好玩的,嘿嘿。考虑了重力哦。

    一:创建了两个有弹性7边形


    二:左边的对象撞到了墙上


    三:右边的对象撞了地面


    我曾经把弹性调的很小,边数调得很大,结果出现了类似充水气球的东西……
posted on 2008-06-05 09:30 陈梓瀚(vczh) 阅读(5660) 评论(9)  编辑 收藏 引用 所属分类: .NET

评论:
# re: 写了一个弹性物体碰撞模拟 2008-06-05 17:23 | Xw.Y
很有趣~不知道你会不会继续写下去。。。可能会碰到的一些问题:多个物体互相作用后造成的递归计算,以及计算的效率问题。。。期待下一个作品:-)  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2008-06-05 19:33 | 陈梓瀚(vczh)
物体相互作用还是有的,只是那个方程没去算,于是暂时比较奇怪而已……  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟[未登录] 2008-06-05 19:46 | cppexplore
“等程序改好了之后再把代码弄出来”??
呵呵 最好改好的时候把思路 主要难题 代码放到首页。本文这种放首页就没什么意义,授人以鱼,不如授人以渔。  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2008-06-05 19:55 | 陈梓瀚(vczh)
也就几百行代码,基本上懂点数学物理一眼就知道在干什么了……

无非就是计算一个点在不在三角形里面,动能守恒动量守恒胡克定律……  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟[未登录] 2008-06-05 20:05 | cppexplore
呵呵 我要表达的主要意思在后半句。  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2008-06-05 21:07 | 陈梓瀚(vczh)
嘿嘿,我不是主攻物理的,我在置顶随笔那里都把做的东西放出来了。  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2008-06-06 00:01 | 空明流转
vc做这些都属于蛋疼行列。  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2008-10-03 06:17 | 免费小说
好高深的东西啊。。  回复  更多评论
  
# re: 写了一个弹性物体碰撞模拟 2009-03-29 20:56 | kuafoo
源码在那里啊 没有找到呢   回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理