当前位于U =(ux,uy)的车辆沿着半径为R的圆逆时针移动,速度为s,方向为d(即与圆相切,与X轴成角度d)。 V =(vx,vy)在时间t的位置是什么? 未指定圆的中心。 我看到它的方式,在时间t之后它将沿着圆圈移动st或角度st / R.但我迷失了尝试从这个信息计算V. 我可以首先根据(ux,uy),R和d找到圆的中心C.然后找到向量CV指向的位置,从而找到V.但这是很多余弦和正弦。我受到CPU的限制,所以也许可以接受一个正弦/ cos / tan或一个或两个正方形/平方根。
答案 0 :(得分:0)
这需要一个图表,但是我缺乏技能。
我认为半径速度和时间间隔使得车辆在可用时间内不会超过圆圈的一半。
设V为车辆在U点后t秒的点。让圆的中心(不需要坐标)为O.然后从U到V的弧长< / p>
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和amp;因此,作为和弦方向的cos调用是方向d旋转通过a / 2,而V处的方向通过a旋转。