gpt4 book ai didi

python - 如何从python中的二面角计算笛卡尔坐标

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:23 26 4
gpt4 key购买 nike

我在笛卡尔空间中有一组点。我可以使用带有 numpy 的 python 计算由给定的四个点 (a、b、c、d) 子集合定义的二面角。以下是我的功能:

def getDihedral(a,b,c,d):
v1 = getNormedVector(a, b)
v2 = getNormedVector(b, c)
v3 = getNormedVector(c, d)
v1v2 = numpy.cross(v1,v2)
v2v3 = numpy.cross(v2,v3)
return getAngle(v1v2,v2v3)

def getNormedVector(a,b):
return (b-a)/numpy.linalg.norm(b-a)

def getAngle(a,b):
return numpy.rad2deg(numpy.arccos(numpy.dot(a/numpy.linalg.norm(a),b.T/numpy.linalg.norm(b))))[0,0]

我只想旋转一个二面角,如何使用带有 numpy 和 scipy 的 python 计算点子集合的新坐标?

最佳答案

如果您可以计算二面角,我假设您可以获得要围绕其旋转点子集的轴。鉴于此,您可以通过在 vpython 中以您想要的角度围绕该轴旋转所有点来轻松地做到这一点 - 参见 this example (转到“旋转矢量”)。否则,您需要编程 the appropriate equation (在 this thread 中详细说明)。

关于python - 如何从python中的二面角计算笛卡尔坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785836/

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