gpt4 book ai didi

language-agnostic - 涉及转弯时如何实现航位推算?

转载 作者:行者123 更新时间:2023-12-01 21:30:46 25 4
gpt4 key购买 nike

"Dead reckoning is the process of estimating one's current position based upon a previously determined position and advancing that position based upon known or estimated speeds over elapsed time, and course." (Wikipedia)

我目前正在实现一个简单的服务器,它利用航位推测优化,通过对客户端和服务器进行逻辑假设来最大限度地减少所需的更新。

用户控制的物体可以说是转动的,也可以说是不转动的。这提出了航位推算的问题(在我看来)。

例如,假设时间点 A 由 [位置、速度、转向:左/右/无] 定义。现在您希望在 t 时间后获得点 B。不转弯时,很容易推断出新位置。由此产生的方向也很容易推断。但是当这两个因素结合在一起时呢?当物体翻转 t 时间时,速度方向将沿着曲线变化。

我是否应该采用另一种解决方案(例如让客户端发送每个新方向的更新,而不是仅仅告诉服务器“我现在向左转”)?

顺便说一句,为了简单起见,这是在 2D 空间中。

最佳答案

为简单起见,假设您的车辆的转弯半径 r 与速度无关。因此,要计算给定初始坐标和时间的新位置:

  • 计算距离(即速度 * 时间)
  • 计算您转动了多少距离(即距离/(2*pi*r))
  • 将该弧线添加到原始位置。

最后的步骤需要详细说明。

给定步骤 2 中计算出的角度 a,如果您以正北航向(即 pi/2 弧度)从 (0,0) 开始并向左转,则您的新位置为: (rcos( a)-1,rsin(a))。

如果您原来的标题不同,假设它是“b”,然后只需相应地旋转新位置,即乘以此旋转矩阵:

 [ cos b , -sin b ]
[ sin(b), cos(b) ]

最后,添加初始位置即可完成。现在,您只需在更改速度或转动方向时发送更新即可。

关于language-agnostic - 涉及转弯时如何实现航位推算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1261119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com