Math 在给定固定速度/角度的情况下,如何将移动对象的速度分解为其X和Y速度?

Math 在给定固定速度/角度的情况下,如何将移动对象的速度分解为其X和Y速度?,math,geometry,Math,Geometry,今天我不懂数学 如果一个物体以规定的速度(例如,5像素/秒)以45度角运动,我如何计算它的X速度和Y速度?在45度角时,一个物体沿每个轴运动的速度是sqrt(2)/2。一般来说,你可以用正弦和余弦来做,但是对于像这样的特定角度,你只需要知道毕达哥拉斯三角形就可以了 在直角三角形中,斜边的平方等于其他两边的平方和。你知道斜边是V,你也知道其他两边是相等的。这意味着V^2=Vx^2*2。这意味着Vx=sqrt(V^2/2),它等于V*sqrt(1/2)。它将是 Vx=VCO@ Vy=Vsin@ 因此

今天我不懂数学


如果一个物体以规定的速度(例如,5像素/秒)以45度角运动,我如何计算它的X速度和Y速度?

在45度角时,一个物体沿每个轴运动的速度是sqrt(2)/2。一般来说,你可以用正弦和余弦来做,但是对于像这样的特定角度,你只需要知道毕达哥拉斯三角形就可以了

在直角三角形中,斜边的平方等于其他两边的平方和。你知道斜边是V,你也知道其他两边是相等的。这意味着V^2=Vx^2*2。这意味着Vx=sqrt(V^2/2),它等于V*sqrt(1/2)。

它将是 Vx=VCO@
Vy=Vsin@
因此,在您的情况下,它将是Vx=5*cos45和Vy=5*sin45
在45度角时,Cos和Sin的值相同,即1/根2


注意:如果你在编程中做任何数学方面的事情,那么看看Vecmath库。

那么总是5像素/秒,总是45度

一般情况是

 velx=cos(a)*vel;
 vely=sin(a)*vel;
a是角度,通常以弧度为单位,因此,符号(正/负)将取决于您的坐标系

20世纪80年代的疯狂事实:在过去,我们使用查找表查找罪恶和罪恶



编辑:由于下面的评论,使我的轴更加传统。x在你的右边是正的。y是正的。东北45度。如果您还有其他问题,请告诉我。

请注意这里的角度约定——如果角度是从Y轴顺时针测量的,则此答案是正确的,这是非常规的。使用更常见的从X轴逆时针测量角度的惯例,您需要切换正反方向。我认为一些3D引擎或库仍在使用正反方向查找,因为它们需要大量计算才能实时查找答案。与过去相比,今天存储整个表的成本要低得多。我们的圆的角度在0-255之间,所以我们可以用“And”(或者实际上只是一个字节的加法,在溢出丢失的地方)来包装它们。当然,我们对sin和cos使用相同的表,只是有一个偏移量。或者有时我们在低字节返回一个按比例缩放的sin(x),在低字节返回一个按比例缩放的cos(x),然后只进行一次查找。