模拟分子运动.docVIP

  • 4
  • 0
  • 约1.77万字
  • 约 25页
  • 2017-05-13 发布于河南
  • 举报
模拟分子运动

弹性碰撞的模拟实验 Author:hank 考虑以下系统,在由多边形围成的平面区域内,有小球作无摩擦水平运动。在此过程中,小球将和多边形边界发生碰撞或者与其他球碰撞,而使自身的运动速度产生变化。本实验假定,所有的碰撞均是弹性的,并且具有相同的恢复系数e. 本此试验以OpenGL为平台经行编程,由于时间仓促,水平较低,尚有许多不足,敬请见谅 理论背景: 对心弹性碰撞: 假设现在有两个物体发生了平面内的对心碰撞,质量分别为m1,m2;碰撞前速度以v1,v2表示,碰后变为u1,u2.以经过A,B质心的直线作为x轴,垂直纸面向外为z轴正方向,建立右手直角坐标系。把v1,v2,u1,u2分解到坐标轴上,根据碰撞前后的动量守恒,可得方程: m1*v1x+m2*v2x=m1*u1x+m2*u2x 1式 m1*v1y+m2*v2y=m1*u1y+m2*u2y 2式 又在y轴上,物体未受到冲击力的作用,而且不计摩擦,以此速度在y轴上的分量,碰撞前后未发生变化。 即: u1y=v1y 3式 u2y=y2y 4式 在x轴方向上,可根据实验补充方程, e=(u2x-u1x)/(v1x-v2x) 5式 与1式联立,可得到: u1x=(m1-e*m2)/(m1+m2)*v1x+(e+1)*m2/(m1+m2)*v2x 6式 u2x=(e+1)*m1/(m1+m2)*v1x+(m2-e*m1)/(m1+m2)*v2x 7式 程序中的碰撞分一下三种: 1.对于小球与一条边(可视为一堵墙壁)碰撞: 点p1和点p2分别是这条边的起点与终点,设向量a表示p1p2方向的单位向量,向量b在xy平面内与之正交,满足:b=k×a(k 是 z 轴的单位向量) 于是: u=(v*a)*-e*(v*b)*b 碰撞条件的判断: a. 小球中心到直线p1p2的距离d=r; 其中,D = (op1p1p2) / |p1p2| b. 球和墙壁有相对挤压的趋势,即: (v*b)*b指向斜边的一侧 可知 (v*b)*b*b0; 进而 v*b0; 2.小球与两条边同时碰撞 这里只考虑两边正交的情况,如图所示: 这种情况下,小球与两墙壁的作用可以认为互不影响,把入射速度分解到与两边正交的方向上,反射后速度的收缩系数(即与原来速度的比率)相同,因此小球将反方向返回,速度变为原来的e倍, u = ﹣e*v; 碰撞条件: 同时满足与两块墙壁的碰撞条件,即可。 3.球与球的碰撞 此时点p1和点p2是两球的质心,同样以p1p2为轴建立坐标系,向量c是其方向上的单位向量(即c=(p1-p2)/|p1-p2|),单位向量d在图示平面内与之正交。 由对心碰撞的理论可知: 碰后两球速度: u1=(v1*d)*d+[(m1-e*m2)/(m1+m2)*(v1*c)+(e+1)*m2/(m1+m2)*(v2*c)]*c u2=(v2*d)*d+[(e+1)*m1/(m1+m2)*(v1*c) +(m2-e*m1)/(m1+m2)*(v2*c)]*c 碰撞条件: 两球中心间距p1p2应小于它们的半径之和 |p1p2| = r1+r2; 球p2对球p1的相对速度vr要指向p1侧,以使它们有相对挤压的趋势: Vr*p1p20; 其中 vr = v2 – v1; 效果图: 使用说明: 要使用的源文件: hant_main.cpp ball.h vector3f.h wall.h ·文件的处理: 把以下文件移到相应位置: glut.h文件 移动到 include/gl glut32.lib文件 移动到 lib glut32.dll文件 移动到 windows/system32/ ·运行说明: 由于是新手上路,还没能把一些交互手段用上,这是最大遗憾。 你可以通过主文件设置有关参数进行实验。 通过设置头文件vector3f.h中的e值,即弹性碰撞的回复系数,可以观察不同情况下的碰撞行为。 如果把e值调至大于1.0,回发现小球的速度会在很短时间内增殖很大,随之小球将脱离墙壁。这一部分因为程序本身设计不够完善,但是在一定程度上依赖于计算机的响应时间。可想如果一个物体速度极快,以至时间本身对于它也不能很好描述,那么这个物体就会脱离我们现在的世界,也许将进行时空穿梭。谁知道? 附录文件: hant_main.cpp #includevector3f.h //定义矢量运算 #includewall.h //关于墙壁的类 #includeball.h //可通过在这个文件中设置e值,改变恢复系数, //如果设置e值大于1.0,会出现什么情况? //#pragma comment(linker, /subsystem:\windows\ /ent

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档