C TrigMath,2质量,刚性杆计算速度

C TrigMath,2质量,刚性杆计算速度,c,math,trigonometry,game-physics,gravity,C,Math,Trigonometry,Game Physics,Gravity,和其他人一样,我正在做一个推力克隆只是为了温习一下。我已经到达了飞船接收吊舱的阶段 本质上,我有两个质量(只考虑球的中心)和一个刚性的,无质量的杆连接。我从不改变,不会崩溃 在这种情况下,飞船(ma)的质量为1.0,吊舱(mb)的质量为2.0。计算新职位所需的数学是什么?当我向飞船施加推力(ma)时,如何将其应用于吊舱(mb)?(并让它像预期的那样摆动)做飞船本身是笔直的,通常的velx-=sin(角度)*推力,vely+=cos(角度)*推力。posx+=velx。等等。我知道我以前知道怎么

和其他人一样,我正在做一个推力克隆只是为了温习一下。我已经到达了飞船接收吊舱的阶段

本质上,我有两个质量(只考虑球的中心)和一个刚性的,无质量的杆连接。我从不改变,不会崩溃


在这种情况下,飞船(ma)的质量为1.0,吊舱(mb)的质量为2.0。计算新职位所需的数学是什么?当我向飞船施加推力(ma)时,如何将其应用于吊舱(mb)?(并让它像预期的那样摆动)做飞船本身是笔直的,通常的velx-=sin(角度)*推力,vely+=cos(角度)*推力。posx+=velx。等等。我知道我以前知道怎么做,但学校在很多年前很早就开始了。

这里有两种方法供你参考

第一个比较简单。放松僵硬。使连接两个的杆成为弹簧。它对它们施加的相等和相反的力与它的长度被移动的量成正比。如果你使弹簧非常刚性,你会有一个几乎刚性的杆非常简单

第二个是使杆实际上是刚性的。在这种情况下,整个系统可以用质心的位置和速度,以及整个系统的角度和旋转速率来描述。质心是系统中各点位置的加权平均数乘以该点的质量。在你的情况下,这将是一个点2/3的方式沿酒吧向吊舱。(因为吊舱的重量是船的两倍。)无论你在推动什么,重心都会移动,就像你在重心处向右推动一样,所以你已经知道如何移动重心


现在你必须考虑旋转速度。当你在船上施加一个力时,一小部分力与杆成直角。这个分数,除了移动质心,还使系统旋转。这部分力正在加速飞船而不是吊舱。对船施加力,你就能计算出加速度。质量中心的加速度是船的1/3。因此,从质量中心的角度来看,2/3的船的侧向加速度会使系统旋转。用重心到船的距离除以2/3,就得到了角加速度。

这是通过将旋转部分与平移部分分开来编写代码的最简单方法

你有一个作用在球上的力的总和-例如重力+发动机的推力+摩擦力。让它成为FA(一个向量)。 你有一个作用在球B上的力的总和-例如重力+摩擦力。设为FBFB(向量)

物体的质心位于杆上。它位于位置(maA+mbB)/(ma+mb)。它是从质量A到质量A的距离ca,其中ca=mb/(ma+mb)。|AB|和从质量B到质量B的距离,其中cb=ma/(ma+mb)。|AB|。设UAB的标准化版本(即U具有单位长度)

对系统进行建模,以便获得重心=X的位置和角度θ。还可以存储速度V和旋转速度w。我们希望找到线性加速度A和旋转加速度w'

质心的运动由牛顿定律通过系统上的总力和总质量来控制,因此:

FA+FB=(ma+mb)。A

旋转由所涉及的扭矩控制。(标量)扭矩=x质心矢量。因此,每个物体上的扭矩为:

TA=FAxCA.-U

TB=FBx cb.U

请注意,这是2D叉积,即TA=FA[x]*ca.-U[y]-FA[y]*ca.-U[x]

惯性矩的定义如下:

I=ca*ca*ma+cb*cb*mb

然后

TA+TB=I.w'


给出每个质量的位置推导X,θ留给读者作为练习:)

嘿,奇怪的是,我浏览了一个回复,但在完成电视之前保存了它,但现在它不见了。删除?删除是因为我发现了一个错误,现在我修复它已经太晚了。我现在要补充一个正确的答案。谢谢大家,我想我最大的问题是我一直认为飞船是主要的演员(因为直到我们到达吊舱)。但连接到吊舱后,我应该从跟踪飞船的位置切换到跟踪2质量物体的质心。将推力施加到其中心(根据船舶方向的角度差和杆的角度在运动和旋转之间分离)。然后,将球和船放置在正确的位置只是一个功能。我相信我现在有足够的时间继续,谢谢你们。