Optimization 最小cos/sin圆上点的坐标

Optimization 最小cos/sin圆上点的坐标,optimization,geometry,cpu-usage,trigonometry,polar-coordinates,Optimization,Geometry,Cpu Usage,Trigonometry,Polar Coordinates,当前位于点U=(ux,uy)的车辆以速度s和方向d沿半径R的圆圈逆时针移动(即与圆圈相切与X轴形成角度d)。在时间t时,车辆将处于什么位置V=(vx,vy)? 未指定圆的中心。 在我看来,在时间t之后,它将沿圆周以st或st/R的角度移动。但我无法从这个信息计算V。 我可以首先根据(ux,uy),R和d找到圆的中心C。然后找到向量CV点的位置,也就是V,但这是很多余弦和正弦。我受CPU的限制,所以可能一个正弦/cos/tan是可以接受的,或者一个或两个平方根/平方根是可以接受的。这需要一个图表,

当前位于点U=(ux,uy)的车辆以速度s和方向d沿半径R的圆圈逆时针移动(即与圆圈相切与X轴形成角度d)。在时间t时,车辆将处于什么位置V=(vx,vy)? 未指定圆的中心。 在我看来,在时间t之后,它将沿圆周以st或st/R的角度移动。但我无法从这个信息计算V。
我可以首先根据(ux,uy),R和d找到圆的中心C。然后找到向量CV点的位置,也就是V,但这是很多余弦和正弦。我受CPU的限制,所以可能一个正弦/cos/tan是可以接受的,或者一个或两个平方根/平方根是可以接受的。

这需要一个图表,但遗憾的是我缺乏技能

我假设半径速度和时间间隔使得车辆在可用时间内不会绕圆圈行驶超过一半

设V为车辆到达U后t秒处的点。设圆心(不需要其坐标)为O。则从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存储为单位向量而不是角度,则可以保存一些正弦和余弦调用,因为弦的方向是通过a/2旋转的方向d,而V处的方向是通过a旋转的方向d。

您能再谈谈解决此问题的设置吗?我可以想象,除非你每秒进行数百万次,否则正弦和余弦的成本不会太大。与其说是一辆车,还不如说是以这种方式跟踪数千辆车,并预测在时间t内,如果它们都继续沿着当前的轨道运行,它们中的任何两个都会相互碰撞。假设是,如果车辆笔直行驶,那么它将继续笔直行驶;如果它在旋转,那么它将沿着一个圆继续旋转(因为tim t非常短,一两秒钟)。我认为,在没有至少两个三角函数的情况下,获得理论上精确的结果将非常困难。也许您可以使用一些查找表来获得适合您的上下文的近似值?或者你正在处理的范围的(分段?)多项式近似?因为它是一个短的预测,所以角度永远不会变大。如果角度足够小,
sin(x)=x
cos(x)=1-0.5x^2
是合理的近似值。这足够好吗?你可以在相等的时间段后计算位置,而无需大量使用trig。功能,但这种方法对于碰撞(同一时间-同一位置)目的不是很有用