|
2D台球的的真实性在于物理模型.
目前的开源台球程序,都
将台球简化为平面球形处理,难以表现的台球实际运行特性,无法达到商业水平.
感谢上帝,经过一段时间研究我设计一种物理模型,达到了较好的效果.既是这篇讲的内容.
了解
物理的本质,才能设计出合理的程序,几个基本的物理概念:
物体的运动分为平动与转动两种,对于三维空间,刚体的力,加速度,速度矢量都可转换到一正交坐标系上,
这三互相垂直的轴上表示为一标量,并且它们之间没有直接的影响。
物体平动的计算
刚体受到一力的作用,力除质量得到加速度,加速度对时间求积分得到速度增量,速度对时间求积分得到位置增量.
力的变换:对于作用与刚体的不经过重心的力F,计算需移至重心,变换后等效于一经过重心的力与一转矩.力大小方向与
原F力相同,转矩为FXR.R为力作用点到重心的矢量,3D空间映射与矢量的叉积计算.
冲量是力与时间乘积的一个量,用于碰撞的计算,冲量除刚体质量得到速度增量.
物体转动的计算
刚体受到一转矩的作用,转矩除转动惯量得到角加速度,角加速度对时间求积分得到角速度增量,角速度对时间求积分得到角度(方位)增量.
转矩没有作用点的区别.
摩擦力,按产生摩擦力的条件,可分为滑动摩擦力、滚动摩擦力、
静摩擦力
滑动摩擦
滑动摩擦的物体微观表面可认为是类似波浪形,滑动摩擦的本质在于两物体表面分子的撞击.滑动摩擦力
由细微的凹凸相互咬合及相互接近的原子互相吸两种原因。同种或异种原子接近到一定程度会相互吸引。摩擦面越光滑摩擦力越小,证明凹凸相互咬合产生摩擦力。但摩擦面太光滑反而加大摩擦力,这时原子互相吸引产生摩擦力起主导作用。f=μN.
|
物体微观表面 |

分子间的相互作用力 |
分子是由原子组成的,原子是由带正电的原子核和带负电的电子组成的。分子力就是分子间这些带电微粒的相互作用引起的。
分子间作用力的近似地用下列经验公式来表示:

式中的λ和μ是大于零的恒量,r为两个分子中心间的距离,s和t都是正数。式中第一项是正的,代表分子之间的斥力;第二项是负的,代表分子间的引力。图1中的两条虚线分别表示引力和斥力随距离而变化的情况,实线表示合力随距离而变化的情况。
称为平衡位置。当r的数量级大于10-9米时,已经变得十分微弱,可以忽略不计了。
静摩擦
与滑动摩擦类似,但物体沿着另一个物体表面仅有运动或有滚动的趋势.fmax=μN
, fmin>0
滚动摩擦
滚动摩擦是一物体在另一物体表面作无滑动的滚动,由于两物体在接触部分受压发生形变而产生的对滚动的阻碍作用。

科学家研究发现,圆轮在推力Ft作用下滚动,与水平面接触处发生挤压变形,滚动摩擦
力主要在于克服前面凸起的辗平,分布力系如图(a).附加力偶Mf=Fn*a+Fs*r称为滚动摩阻力偶,简称滚阻力偶.其大小与物体的性质、表面的形状以及滚动物体的重量有关。
基本的台球滚动分析
现在开始简单的球滚动分析,假设球杆开始打击在母球中央
1.球受到一个冲量作用,瞬间在水平方向产生一较高速度,但球还未发生旋转.
2.因为重力与桌面的支撑力,并球与地面接触点相对移动,产生滑动摩擦.在摩擦力影响下球的速度逐渐减小,旋转速度从零逐渐增加.
3.球旋转速度对接触点的影响是向后方,球平移速度对接触点的影响向前,当两种速度达到平衡,既球与地面的接触点无相对移动,进入滚动摩擦状态.球的速度受滚动摩擦力影响
逐渐减小,同时旋转速度受滚阻力偶也逐渐减小
4.当球的速度与旋转速度降为零,进入静止状态.
旋切摩擦
球在地面会形成一个凹坑,如果球有垂直方向的旋转,因为凹坑是有半径的大小,会形成圆周分布的阻力,阻力偶的方向与垂直轴旋转方向相反.
接触点水平方向的平动速度对其有直接的影响,机制比较复杂,应要同时计算.
假设地面对球的支持力均匀分部,球凹坑的有效半径为R,取凹坑上,下,左,右边缘四个典型的采样点分析,球的接触点的平动速度Vv可以计算出(球
水平方向旋转速度和平动速度的合速度),并设为上。垂直方向旋转速度Vx也可得到,两者相加得到合速度(黑色表示),这是四个采样点的绝对速度。因为摩擦力的方向与速度相反,滑动摩擦力的大小
却与速度大小无关,只与支持力大小成正比,可得到红色表示的摩擦力,摩擦力看似杂乱,无方向性,但仍有一定规律可寻。
|

凹坑形成的阻力 |
凹坑四采样点的速度与摩擦力
|
|

上,下两个方向插值 |

左,右两个方向插值(Vx小于Vv时)

左,右两个方向插值(Vx大于Vv时) |
在上,下两个方向上,摩擦力呈现一种线性比例关系,当旋转速度Vx较平动速度Vv大时 ,摩擦力偏向于Vx,当平动速度Vv较旋转速度Vx大时
,摩擦力偏向于Vv,上下之间部分可以插值的方式计算。
在左,右两个方向上比较复杂,当Vx小于Vv时摩擦力全部朝向Vv反向一侧,全用于抵消Vv,此时此方向的摩擦力对旋转速度Vx无影响。当Vx大于Vv时摩擦力偏向于Vx,可
知这也是一种配比关系,但不是线性比例。
还可知,当球开始进入摩擦状态,如果开始运动时旋转速度非常快还是平动速度非常快,因为这种配比平衡的关系,最后,两者有趋向与同时降为零的趋势。
程序中根据各种摩擦的条件判决,每个球设置一个State变量表示本球当前状态,并显示相应的颜色.伪代码如下:
计算旋转速度Vx
计算平动速度Vv
计算出配比系数
水平方向摩擦的计算
If 球接触点速度为零 And 球水平方向的速度为零 Then
球处于水平方向静止状态 灰
State = 3
ElseIf 球与地面接触点相对速度为零 Then
球处于滚动摩擦状态 绿
State = 2
施加滚动摩擦力
Else
球处于滑动摩擦状态 红
State = 1
施加滑动摩擦力
End If
旋切摩擦的计算
If 球Z方向速度不为零 Then
施加旋切摩擦力
If 球Z方向速度为零 And 球处于水平方向静止状态 Then
球处于完全静止状态 黑 State = 4
撞击时球的受力分析

两球撞击时受到瞬间正冲量与摩擦冲量作用,
如果撞击处的相对速度(沿摩擦力方向)较小,摩擦冲量会使其到零的状态,如果相对速度较大,瞬间摩擦冲量不足以抵消,撞击后仍然具有一定相对速度,这就是为什么程序中对撞击的摩擦
冲量也要进行动静判断.具体计算使用的是《基于冲量的刚体碰撞运动》一文的理论,因为球体的特殊性,冲量方程可以进行一定简化。
目标球受摩擦力的影响,将会沿着母球的运动方向有少量前移.要消除摩擦力影响,改变击打点或者用侧旋,都是有效的.
吃库(球碰到边沿叫做吃库)后也会偏向旋转方向.
入射角等于反射角的物理学原理无效.
不同的击球点影响
击打母球的上半部与下半部(高低杆打法 )
击打上半部母球会有跟着目标球向前走的趋势,这时候碰到后母球就会跟进. 击打下半部有阻止母球跟着目标球向前走,但最后减速向后移动,下面还可以让球出速
较快.
击打球的一侧
击打球的一侧,母球会偏一侧旋转,即使正撞击目标球,因为有摩擦,目标球方向仍然会偏向一侧.

球的速度,前滚或后滚,侧旋方向.一般大力度的击球将增加这些影响.
跳球
击打中心偏下,球杆抬高40°的打法产生跳球
。
跳球在2D台球中难以表现,且有不稳定因素,所以在程序中如果有向上或向下的速度,都忽略其影响.
球与台球桌的碰撞检测
球与台球桌边沿撞击一样使用冲量理论,先检测它是否发生干涉(即圆形与直线段间).
一无边界的平面可由法线N及到原点的垂直距离D表示,多边形面则可由自身及包围的几个平面表示。

对于这里的桌面边沿(2D直线段),程序中由三条无边界直线计算,它们是自身<N1,D1>,两边界<N2,D2>,<N3,D3>,计算如下:
1.计算球到垂足的系数,小于零,大于1的排除,这样2号,3号,7号球排除.
2,计算球到自身直线绝对距离如果小于球半径,则发生碰撞,如果距离大于零与直线正面发生碰撞,小于零与反面发生碰撞.
3.还有一种情况要考虑,就是7号球,在边界外,但与直线一端点碰撞,计算球心到端点既可.
4.应用冲量计算.
台球程序的物理我想就讲这几方面. |