【发布时间】:2017-05-04 19:56:40
【问题描述】:
当前在点 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 的限制,所以可能一个正弦/余弦/正切是可以接受的,或者一两个平方/平方根是可以接受的。
【问题讨论】:
-
你能多谈谈你解决这个问题的设置吗?我可以想象,除非您每秒执行数百万次,否则正弦和余弦的成本不会太大。
-
这不是一辆车,因为它涉及以这种方式跟踪数千辆汽车,并预测是否在时间 t 内,如果它们都保持当前的轨迹,它们中的任何两个将相互碰撞。假设是,如果车辆直行,那么它将继续直行;如果它在转动,那么它会一直绕着一个圆圈转动(因为 tim t 很短,一两秒。)
-
我认为,在没有至少 2 个三角函数的情况下获得理论上准确的结果将非常困难。也许您可以使用一些查找表来获得适合您的上下文的近似值?还是您正在处理的范围的(分段?)多项式近似?
-
因为它是一个简短的预测,所以角度永远不会变得很大。如果角度足够小,
sin(x) = x和cos(x) = 1 - 0.5x^2是合理的近似值。够好吗? -
您可以在相等的时间段后计算头寸,而无需大量使用 trig。功能,但这种方法对于碰撞(同一时间 - 同一位置)目的不是很有用
标签: optimization geometry cpu-usage trigonometry polar-coordinates