2

デカルト空間に点の集合があります。Python と numpy を使用して、特定の 4 点 (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]

二面角を 1 つだけ回転させたいのですが、python と numpy および scipy を使用して、ポイントのサブアンサンブルの新しい座標を計算するにはどうすればよいですか?

4

1 に答える 1

1

上反角を計算できれば、点のサブセットを回転させたい軸を取得できると思います。それを考えると、vpythonで必要な角度でこの軸の周りのすべてのポイントを回転させることで、これを簡単に行うことができます-この例を参照してください(「ベクトルの回転」に移動します)。それ以外の場合は、適切な方程式をプログラムする必要があります(このスレッドで詳しく説明されています)。

于 2012-10-08T17:28:15.290 に答える