类似比卡丘排球的那种,球和不规则物体碰撞然后反弹的路线,不考虑球速可摩擦
解决方案 »
- VC6.0安装Platform SDK for WinXP的问题
- 如何获得本机http header accept 的默认值
- extern "C" declspec(dllexport) bool _stdcall mypro()为什么调用时成了_mypro@8
- 如何得到一个窗口中工具栏的句柄?
- 数据库的一次连接,多次使用
- 怎样学VC
- 求救:CHtmlView打印预览?如何更改IE的页面设置?
- WINAPI FOR VC 的函数库
- 关于字符串截取的问题
- 大侠留步:我有两三个问题,是关于CMAPStringToString及CString的....请帮--〉
- 图形控件上的波形图显示区域 不能随着窗口的最大化而变大
- C/S下遇到的问题
Ball1 Ball2之间的距离小于球体直径
球墙碰撞条件
Ball到墙的距离小于球半径
球球碰撞反弹
由球心连线确定了一个反弹向量,计算得到它的垂直向量,由这两个向量形成
一个直角坐标系,把球的运动向量沿着这个新的直角坐标系进行分解,然后把
反弹向量平行的分解因子数值取反,和另外一个分解因子再次合成,就得到了
反弹的方向。
球墙的碰撞反弹和球球的碰撞反弹计算方式类似,不过是把反弹向量定义为墙体的
发向量方向。
球体之间的摩擦只会产生滚动、转动效果。
转动的方向和向量分解的另外一个因子的方向相反。
有了两两之间的碰撞方向计算后,再加入对物体运动速度的控制就可以实现了。
1、碰撞前,m1速度是V,方向沿X轴的正方向,m2的速度是0,
2、碰撞后,m1速度是V1,方向与X轴的正方向逆时针夹α角,m2速度是V2,方向与X轴的正方向顺时针夹θ角。
3、由于碰撞的时间极短,台球桌面摩擦力的冲量可以忽略不计,则遵守动量守恒定律:
X轴方向:m1*V=m1*V1*cosα+m2*V2*cosθ(1)
Y轴方向:0=m1*V1*sinα-m2*V2*sinθ (2)
由于碰撞时,能量有损失,故动能不守恒。
此时m1、m1、V应当是确定的,α、θ,若对心碰撞时α=θ=0,若不是对心碰撞时α、θ都>0,它们由倾斜碰撞情况确定,但应当知道其中的一个;V1、V2与能量损失的情况有关。
如果知道能量损失的情况,就可以另外列出一个方程,如:0.5m1*V∧2=0.5m1*V1∧2+0.5m2*V2∧2+E损(3)
根据方程(1)(2)(3)及α或θ情况就可求解。