Python中的向量:计算两个向量之间的角度(基本)

Python中的向量:计算两个向量之间的角度(基本),python,numpy,Python,Numpy,这是我在这个问答网站上的第一篇帖子 在下文中,我将向您展示一些我编写的代码,这些代码让我感到困惑。它是关于计算两个向量之间的内角。我可能知道围绕这个主题有很多问题,但我来到这里,希望能让一些人看看我的代码,告诉我,为什么它不能打印出预期的答案 例如,如果我使用向量a=[-8,-13,-9]和向量b=[0,0,1],结果应该是30° 然而,情况并非如此。我怀疑我的错误与arccos功能的错误实现有关: 导入数学 将numpy作为np导入 def转换器(): 打印(“-+-+-+-+-+-+-Win

这是我在这个问答网站上的第一篇帖子

在下文中,我将向您展示一些我编写的代码,这些代码让我感到困惑。它是关于计算两个向量之间的内角。我可能知道围绕这个主题有很多问题,但我来到这里,希望能让一些人看看我的代码,告诉我,为什么它不能打印出预期的答案

例如,如果我使用向量
a=[-8,-13,-9]
和向量
b=[0,0,1]
,结果应该是30°

然而,情况并非如此。我怀疑我的错误与
arccos
功能的错误实现有关:

导入数学
将numpy作为np导入
def转换器():
打印(“-+-+-+-+-+-+-Winkelberechnong zwischen Gerade and Gerade-+-+-+-+-+-+-”)
rx1=浮点(输入(“X-Wert(Richtungsvektor#1):”)
ry1=浮点(输入(“Y-Wert(Richtungsvektor#1):”)
rz1=浮点(输入(“Z-Wert(Richtungsvektor#1):”)
rx2=浮点(输入(“X-Wert(Richtungsvektor#2):”)
ry2=浮点(输入(“Y-Wert(Richtungsvektor#2):”)
rz2=浮点(输入(“Z-Wert(Richtungsvektor#2):”)
rich1=[rx1,ry1,rz1]
rich2=[rx2,ry2,rz2]
#温克尔·贝雷什农:这是一个很好的例子吗?
skala=rich1[0]*rich2[0]+rich1[1]*rich2[1]+rich1[2]*rich2[2]
b_von_r1=math.sqrt(rich1[0]**2+rich1[1]**2+rich1[2]**2)#winkel_检验
b_von_r2=math.sqrt(rich2[0]**2+rich2[1]**2+rich2[2]**2)
角度=np.arccos(斯卡拉/(b_von_r1*b_von_r2))
如果角度>90:
角度=180-角度
其他:
通过
打印(角度)
转换器()

arccos返回的是弧度角度,而不是度。

。。。相关-如何以度为单位返回角度?@Erico123 180*result/math.pi?编程语言中几乎每个trig函数都会处理弧度。您应该习惯于使用它们,或者至少在必要时转换它们。还有math.degrees()和math.radians来进行转换。