我想要计算旋转体的角速度。从数据来看,我在每个时间间隔都有对象的角度。例如。Numpy帮助计算旋转体的角速度
numpy的数组= [5,85,185,270,355,10,75,170,250345,25,...]
为顺时针旋转并且类似地对于
逆时针旋转numpy的阵列= [25,345,250,170,75,10,355,270,185,85,5,...]。
所以,当我尝试计算角度之间的差异,对于0到360的范围,反之亦然,我可以使用numpy.diff(),在这种情况下工作良好。
当我碰巧从360到0的差异或例如。如图所示。 A,从355度到5度,我不能再使用numpy.diff()。 我必须使用一个条件语句,如:
if ang[i+1]>280 and theta<80:
new_theta=-1*((theta-ang[i+1])%360)
并且类似地当所述旋转运动是在逆时针方向上,我使用类似于上述的条件来获得在角度(dTheta)之差:
elif ang[i+1]<80 and theta>280:
new_theta=360%(theta-ang[i+1])
与广义当角度既不是接近极限,即0或360
new_theta=ang[i+1]-theta
那么有没有更好的计算方法可以快速有效地提供更好的结果?
我无法处理范围限制。我不确定scipy norm
在这里是否有帮助。
欢迎任何有关改善问题的建议。
谢谢。
您必须对最大角速度做一些假设,因为您的物体可能会在一个时间步旋转350度。如果不能,我会说你应该计算差异,那么如果他们大多数是积极的,相应地纠正消极的或相反的。 – Aaron