首页 > 解决方案 > Python转换两个不同坐标平面之间的角度?

问题描述

我不知道如何表达我的问题,但我最感兴趣的是我可以在 python 中使用的逻辑,因为我对 python 的了解并没有太多关于数学的使用。

我有 2 个不同的平面,一个固定在 North 总是 0 的位置,东是 90 ,南是 180,西是 270。我也有另一个参考平面,0 总是在我面前。

现在对我来说,这在我的脑海和纸上听起来很简单,但是在 python 中,我只是不知道如何反映这一点,无论我面对什么,它在我自己的参考平面上总是 0,但是在另一个参考平面(北、东、南、西) 我面对任何角度。例如,假设我在自己的参考平面上有 70 度的东西,并且我知道在指南针参考中我面向 270 度(这意味着在我的参考中为 0 度时,我面向 270 度在罗盘中),我想确定在哪个角度(罗盘)是我自己的参考平面中大约 170 度的物体。从数学上讲,我可以通过简单地将 100 度添加到指南针参考来做到这一点,一旦达到 360,我就会回到 0 。所以这意味着该物体在指南针中的角度为 10 度。

我知道答案在编程方面很简单,可能是如果度数 > 360,那么度数 = 0。但不知道在 python 中是否有更简单的方法来考虑所有情况(度数 <0,度数 >0)。

标签: pythongeometry

解决方案


您可以使用返回除法余数的模运算符:

calculated_angle %= 360 # will keep the value between 0 & 359

因此,一旦您计算出的角度(通过添加参考系的角度 + 指南针上的角度来实现)存储在calculated_angle.

您可以使用模运算符来确保如果角度超过 360 度,它会返回 0 并重新开始计数。所以 460 % 360 将是 100。如果角度低于 0,它会再次从 360 重新开始。所以 -50 % 360 就是 310。


推荐阅读