当前在点U= (ux,uy)的车辆正沿着半径为R的圆以速度s和方向d(即与圆相切,与X轴成d角)逆时针移动。它会在时间t的什么位置V= (vx,vy)?未指定圆的圆心。在我看来,在时间t之后,它会沿着圆周移动st,或st/R的角度。但是我在尝试从这些信息中计算V时迷失了方向。我可以首先基于(ux,uy),R和d找到圆的中心C,然后找到向量CV的点,也就是V,但这是一大堆余弦和正弦。我受到CPU的限制,所以可能一个正弦/cos/tan是可以接受的,或者一个或两个平方根/平方根是可以接受的。
发布于 2017-05-09 22:28:01
这需要一个图表,但可惜我缺乏这方面的技能。
我假设半径、速度和时间间隔是这样的,即在可用时间内,车辆不会绕圆半圈以上。
设V是车辆到达U后的t秒处的点,设圆的中心(不需要坐标)为0,则从U到V的弧长为
A = s*t所以在O处的角度是
a = A/R radians. 从U到V的方向将与U和V中间点处的圆的切线方向相同,即
e = d + a/2从U到V的距离是从U到V的弦的长度。弦的中点是两个全等直角三角形的顶点,其斜边的长度为R,O处的角度为a/2。因此弦的长度为
C = 2*R*sin( a/2)最后
V = U + C*(cos(e), sin(e))您可能还需要V处切线的方向。这是d+a。
请注意,如果将方向d存储为单位向量而不是角度,则可以保存一些sin & cos调用,因为弦的方向是d旋转通过a/2的方向,V处的方向是d旋转通过a的方向。
https://stackoverflow.com/questions/43791776
复制相似问题