对于如何计算两个刚体之间角动量传递的相对容易实现的方程,有没有人有任何好的参考?
我一直在寻找这种事情,我没有找到任何特别易于理解的问题解释.
确切地说,问题是这样的; 两个刚体在无摩擦(井,近)表面上移动; 把它想象成空气曲棍球.两个刚体接触,然后移开.现在,在不考虑角动量的情况下,方程式相对简单; 问题变成了,身体之间的角动量传递会发生什么?
作为一个例子,假设两个物体没有任何角动量; 他们没有旋转.当它们以倾斜角度相互作用时(行程矢量不与它们的质心线对齐),显然它们的一定量的动量会转换成角动量(即它们各自得到一定量的旋转),但是如何很多,这样的等式是什么?
这可以通过使用多体刚性系统来计算,但我希望得到更加优化的计算,所以我可以实时计算这些东西.有没有人对方程式有任何想法,或指向包含在项目中的这些计算的开源实现?确切地说,我需要将其作为一个相当优化的计算,因为需要在模拟的单个"滴答"内模拟相互作用的数量.
编辑:好的,看起来没有关于这个主题的很多准确信息.而且我发现"程序员物理学"类型的书籍有点太......愚蠢到真正得到; 我不想要算法的代码实现; 我想弄清楚(或者至少已经勾勒出我的算法)算法.只有这样才能根据我的需要对其进行适当的优化.有没有人对这类话题有任何数学参考?
language-agnostic equation physics angular-momentum rigid-bodies
我在为我的纺车增加动力方面遇到了困难.
我有这个轮子(类似这样的东西)并且我通过使用单个触摸事件在它的中心旋转它.
这里没有问题,但是当触摸(又名拖动)结束时; 我希望方向盘保持它的动量并缓解它的运动.
任何能给我一些指示的人,都不一定要在客观方面.AS3,javascript或JAVA也足够了.
*更新(旋转车轮的代码)*
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
rotation = _startAngle = atan2(384 - touchPoint.y, 512 - touchPoint.x);
};
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
rotation = atan2(384 - touchPoint.y, 512 - touchPoint.x);
rotation = fmod(rotation - _startAngle, M_PI * 2.0f);
[wheel setTransform:CGAffineTransformMakeRotation(_circleRotationOffset + rotation)];
};
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
_circleRotationOffset = fmod(_circleRotationOffset + rotation, M_PI * 2);
};
Run Code Online (Sandbox Code Playgroud)