【发布时间】:2021-08-01 21:09:44
【问题描述】:
我写了一个代码来使用它们的 3D 坐标计算三个点之间的角度。
import numpy as np
a = np.array([32.49, -39.96,-3.86])
b = np.array([31.39, -39.28, -4.66])
c = np.array([31.14, -38.09,-4.49])
f = a-b # normalization of vectors
e = b-c # normalization of vectors
angle = dot(f, e) # calculates dot product
print degrees(cos(angle)) # calculated angle in radians to degree
代码输出:
degree 33.4118214995
但是当我使用其中一个软件进行计算时,它给出的输出位不同 120 度。请帮忙
参考我写程序时使用的:
【问题讨论】:
-
1.) 您需要减去相同的点才能获得您正在寻找的向量(请参阅对您其他问题的回答)。 2.) 您必须对向量进行归一化(这不是减法!) 3.) 您还使用了哪些其他软件? 4.) google 提供了 python 脚本,您可以在其中比较您的解决方案。
-
5.) 您需要使用反余弦函数(acos 或 arccos)。 6.) 你不知道你的代码是做什么的,对吧? :)
-
@kazemakase 是的,在编写代码之前你是对的,我只是按照我添加的参考资料中提到的步骤进行操作,但现在阅读了很多并知道发生了什么。其实我不是数学背景的:)