我一直在尝试寻找一个公式来确定汽车在给定两组坐标的情况下是左转还是右转。 x1,y1 在 t 秒,x2,y2 在 t+1 秒。到目前为止,我一直在使用这个:
double direction = atan2(y2 - y1, x2 - x1)
然后,我检查方向是正向还是负向,以确定汽车是向左转还是向右转。这行得通,但我根本不需要知道方向的值。我只需要标志。另外,我想避免使用可能很昂贵的 atan2。我可以使用另一个公式吗?谢谢!
编辑1:
我有速度。两点之间的时间始终相差一秒,因此可以根据需要进行计算。
编辑2: 这就是我所说的转向的意思:我正在处理来自并非 100% 真实的交通模拟数据。通常,我有汽车的航向(以度为单位)。然而,当汽车改变车道时,航向不准确(似乎是沿对角线行驶)。所以,在这种情况下,我已经确定汽车正在改变车道。我需要将汽车的航向倾斜 20 度左右。我只需要弄清楚改变航向的方向,这就是为什么我需要弄清楚汽车在变道时“转弯”的方向。
最佳答案
atan2为正当且仅当 y 分量为正。
关于c++ - 找到两点之间角度的+/-符号的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502033/