python - 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)。
解决方案
您可以使用返回除法余数的模运算符:
calculated_angle %= 360 # will keep the value between 0 & 359
因此,一旦您计算出的角度(通过添加参考系的角度 + 指南针上的角度来实现)存储在calculated_angle
.
您可以使用模运算符来确保如果角度超过 360 度,它会返回 0 并重新开始计数。所以 460 % 360 将是 100。如果角度低于 0,它会再次从 360 重新开始。所以 -50 % 360 就是 310。
推荐阅读
- python - Python 3 Pandas:如何找到一列的行元素子集与另一列的元素之间的关系?
- sql - Postgres:将“返回*”的结果读入变量
- html - Bootstrap 4 不遵守高度指令
- image - 在圆顶上绘制图像
- ssas - 为什么要在似乎暗示的时候使用 CROSSJOIN?
- python - 修改 statsmodels 图
- postgresql - 为什么这些非常相似的 jsonpath 之一有效,而另一个无效?
- node.js - await 如何导致 for 循环退出
- php - 在 Mac 上通过 PHP 中的 scandir 访问外部 NAS /Volume
- python-3.x - Python - 管理 anaconda 和基本系统之间的软件包安装