【发布时间】:2020-08-08 06:59:50
【问题描述】:
我正在为 python 制作一个向量库(我对 python 很陌生),我正在制作一个函数来查找向量的标题。这是它的代码。 (顺便说一句,我对所有这些都使用弧度)。
def heading(self):
return math.atan2(self.x, self.y)
我知道这是坏的,因为当我运行我的 setHeading 函数(我已经测试过,它工作正常)来设置向量的标题时,获取标题会返回一个不同的值。我在谷歌上查看它有什么问题,它说 python math.atan2 函数返回一个介于 -PI 和 PI 之间的值。好的,我在退货时添加 PI。还是不行。我该如何解决这个问题?
编辑:我被要求将 setHeading 函数也放在这里。
def setHeading(self, a):
if type(a) == int or type(a) == float:
self.x = math.cos(a) * self.mag()
self.y = math.sin(a) * self.mag()
else:
print("Vector2.setHeading() only takes a float or an int")
【问题讨论】:
-
atan2 计算“平面中从原点到点 (x, y) 的向量与正 X 轴形成该角度”。如果不是正 X 轴,您使用的角度参考是什么参考?
-
您能展示一下
setHeading的实现吗?我了解您认为它“工作正常”,但它可能是根据与atan2工作的不同期望这样做的。 -
如果您需要一个介于 0 和 2*pi 之间的角度,那么您可以将 2*pi 添加到 atan2 返回的小于零的角度。
-
@DarrylG 0 度沿 x 轴,如果这就是您要问的。
-
@KarlKnechtel 在编辑中添加了它