【问题标题】:Calculating the Bearing of A(x1,y1) Relative to B(x2,y2) in iOS在 iOS 中计算 A(x1,y1) 相对于 B(x2,y2) 的方位
【发布时间】:2012-08-28 09:06:41
【问题描述】:

我可以知道我应该如何计算一个点相对于另一个点的方位角吗?我在互联网上看到的所有公式都是纬度/经度坐标。我在这里使用笛卡尔坐标系,但无法找到解决方案。请帮忙!

【问题讨论】:

  • 你知道如何计算笛卡尔平面中两点之间直线的斜率吗?
  • 我不知道,但我可以找到。它对计算方位有何帮助?
  • 因为方位 两点之间的线的斜率。在您的图片中,蓝色与红色的角度为 065°,并且不可避免地,红色与蓝色的方向相反。
  • 如何从坡度得到方位值?
  • 方位坡度。蓝色与红色的方位线从红色到蓝色的斜率。红与蓝的方位线从蓝到红的斜率。如果您将斜率计算为“4/5”,那么您必须将其转换为角度测量值。 @Axeman 的回答告诉你怎么做。

标签: iphone objective-c math navigation trigonometry


【解决方案1】:

使用 atan2 函数(IIRC 你的objective-c 应该有它)。 它为您提供介于 -PI 和 PI 之间的结果。如果需要,您必须将其映射到 0-360。

【讨论】:

  • 我现在有这个:浮动轴承 = RADIANS_TO_DEGREES(atan2f(y2-y1, x2-x1));如何将其映射到 0-360?
  • 轴承=(atan2f_result >= 0 ? atan2f_result : (2*PI + atan2f_result)) * 360 / (2*PI);应该可以。
【解决方案2】:

不是您问题的真正答案,但如果您使用 CLLocationManager 获得积分,则每个 CLLocation 都有一个 course 属性,它为您提供给定点的旅程方位。有关实际数学,请参阅 Axeman 的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多