gpt4 book ai didi

python代码使用它们的3D坐标计算三点之间的角度

转载 作者:行者123 更新时间:2023-11-28 19:35:15 29 4
gpt4 key购买 nike

我写了一段代码,使用三点坐标计算三点之间的角度。

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 度。请帮忙

我写程序的引用资料:

( How to calculate bond angle in protein db file? )

最佳答案

您的原始代码非常接近。 Adomas.m 的回答不是很地道的 numpy:

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])

ba = a - b
bc = c - b

cosine_angle = np.dot(ba, bc) / (np.linalg.norm(ba) * np.linalg.norm(bc))
angle = np.arccos(cosine_angle)

print np.degrees(angle)

关于python代码使用它们的3D坐标计算三点之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35176451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com