Python在两个不同的坐标平面之间转换角度?

问题描述

我不知道如何表达我的问题,但是我对我可以在python中使用的逻辑很感兴趣,因为我对python的了解与数学用法无关。

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

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

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

解决方法

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

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

因此,一旦将计算出的角度(通过将参考系的角度与指南针上的角度相加而获得)存储在calculated_angle中。

您可以使用取模运算符来确保如果角度超过360度,它将返回0,然后再次开始计数。因此460%的360将为100。如果角度小于0,则它将再次从360开始备份。因此,-50%360等于310。