У меня есть ансамбль точек в декартовом пространстве. Я могу вычислить двугранные углы, определяемые заданным подмножеством из четырех точек (a, b, c, d), используя python с numpy. Ниже приведены мои функции:
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]
Я хочу повернуть только один двугранный угол, как я могу рассчитать новые координаты для подгруппы точек, используя python с numpy и scipy?