【发布时间】:2020-01-20 12:20:45
【问题描述】:
我目前正在开发一个使用航路点的导航系统,我们可以定义以下周长,假设 B 点是我们想要去的地方,A 点是您当前的位置:
- 我们知道 A 点和 B 点的位置 (X,Y)。
- A 点(您)和 B 点(我们的目的地)各自的 X 和 Y 值都是正值。
- 我们知道 A 点(您)所面对的角度。 (360 - 0 度)
我的问题是如何获得最小的转弯角度以面对 B 点(我们的目的地)?
我目前的方法是使用 ArcTan2(X,Y)
B := ArcTan2(Y1 - Y2,X1 - X2)
B := B * 180 / pi ---- 将弧度转换为度数。
这确实会返回一个合适的角度,但只是有时......其他时候它会返回一个角度,使我面对 B 点(我们的目的地)的相反方向。
我遇到的另一个问题是我应该左转还是右转 - 假设我们有一个 80 度的返回角,这是否意味着我应该向左还是向右旋转?
我希望我的解释有点清楚,三角学从来都不是我的强项。
如果你们能提供给我的任何意见或来源,我将不胜感激。
谢谢 清除先生
【问题讨论】:
-
这不是关于 Delphi 或编程的问题。这是一个关于数学的问题。
-
也许我确实使用了不正确的标签,这是我在这里的第一篇文章。然而,ArcTan2 最初是专门为编程语言开发的,这意味着大多数用例都围绕着一种程序,这似乎很合适。道歉
-
拜托-这是“角度”,而不是“天使”。当你承认你对它知之甚少时,你怎么能写出一个完全依赖于三角学的系统呢?推荐向量和叉积似乎是徒劳的。
-
@duffymo 这似乎很戏剧化,您添加到此线程的唯一价值是纠正我的错字 x_x,请原谅我认为这是一个学习论坛?
-
我可以做的远不止这些,但我认为当有人声称要编写一个大量使用三角函数的系统时,期望具有基本知识水平是合理的。这不是本网站的使命,也不是经常访问它的志愿者为您提供基本知识。
标签: delphi math navigation trigonometry