定向器类(docstring)#

class sympy.vector.orienters.Orienter(*args)[源代码]#

所有orienter课程的超级课程。

rotation_matrix()[源代码]#

与此定向器实例对应的旋转矩阵。

class sympy.vector.orienters.AxisOrienter(angle, axis)[源代码]#

类来表示轴定向器。

__init__(angle, axis)[源代码]#

轴旋转是围绕任意轴旋转一定角度。角度作为SymPy expr标量提供,轴作为向量提供。

参数:

:表达式

新系统旋转的角度

axis :矢量

必须绕其旋转的轴

实例

>>> from sympy.vector import CoordSys3D
>>> from sympy import symbols
>>> q1 = symbols('q1')
>>> N = CoordSys3D('N')
>>> from sympy.vector import AxisOrienter
>>> orienter = AxisOrienter(q1, N.i + 2 * N.j)
>>> B = N.orient_new('B', (orienter, ))
rotation_matrix(system)[源代码]#

与此定向器实例对应的旋转矩阵。

参数:

系统 :CoordSys3D

计算旋转矩阵的坐标系

class sympy.vector.orienters.BodyOrienter(angle1, angle2, angle3, rot_order)[源代码]#

类来表示实体定向器。

__init__(angle1, angle2, angle3, rot_order)[源代码]#

身体方向通过三个连续的简单旋转来获得这个坐标系。

身体固定旋转包括欧拉角和泰特布莱恩角,请参见https://en.wikipedia.org/wiki/Euler_角度。

参数:

角度1,角度2,角度3 :表达式

旋转坐标系的三个连续角度

rotation_order :字符串

定义旋转轴顺序的字符串

实例

>>> from sympy.vector import CoordSys3D, BodyOrienter
>>> from sympy import symbols
>>> q1, q2, q3 = symbols('q1 q2 q3')
>>> N = CoordSys3D('N')

“物体”的固定旋转由三个角度和三个物体固定旋转轴来描述。为了确定坐标系D相对于N的方向,每个顺序旋转总是围绕固定到D的正交单位向量。例如,“123”旋转将指定围绕N.i、D.j、D.k的旋转(最初,D.i与N.i相同),因此,

>>> body_orienter = BodyOrienter(q1, q2, q3, '123')
>>> D = N.orient_new('D', (body_orienter, ))

与…相同

>>> from sympy.vector import AxisOrienter
>>> axis_orienter1 = AxisOrienter(q1, N.i)
>>> D = N.orient_new('D', (axis_orienter1, ))
>>> axis_orienter2 = AxisOrienter(q2, D.j)
>>> D = D.orient_new('D', (axis_orienter2, ))
>>> axis_orienter3 = AxisOrienter(q3, D.k)
>>> D = D.orient_new('D', (axis_orienter3, ))

可接受的旋转顺序长度为3,以XYZ或123表示,并且不能连续两次绕轴旋转。

>>> body_orienter1 = BodyOrienter(q1, q2, q3, '123')
>>> body_orienter2 = BodyOrienter(q1, q2, 0, 'ZXZ')
>>> body_orienter3 = BodyOrienter(0, 0, 0, 'XYX')
class sympy.vector.orienters.SpaceOrienter(angle1, angle2, angle3, rot_order)[源代码]#

类来表示空间定向器。

__init__(angle1, angle2, angle3, rot_order)[源代码]#

空间旋转与躯干旋转相似,但旋转的应用顺序相反。

参数:

角度1,角度2,角度3 :表达式

旋转坐标系的三个连续角度

rotation_order :字符串

定义旋转轴顺序的字符串

实例

>>> from sympy.vector import CoordSys3D, SpaceOrienter
>>> from sympy import symbols
>>> q1, q2, q3 = symbols('q1 q2 q3')
>>> N = CoordSys3D('N')

为了确定坐标系D相对于N的方向,每个顺序旋转总是关于N的正交单位向量。例如,“123”旋转将指定围绕N.i、N.j、N.k.的旋转,因此,

>>> space_orienter = SpaceOrienter(q1, q2, q3, '312')
>>> D = N.orient_new('D', (space_orienter, ))

与…相同

>>> from sympy.vector import AxisOrienter
>>> axis_orienter1 = AxisOrienter(q1, N.i)
>>> B = N.orient_new('B', (axis_orienter1, ))
>>> axis_orienter2 = AxisOrienter(q2, N.j)
>>> C = B.orient_new('C', (axis_orienter2, ))
>>> axis_orienter3 = AxisOrienter(q3, N.k)
>>> D = C.orient_new('C', (axis_orienter3, ))

参见

BodyOrienter

定向,以确定与欧拉角相关的系统方向。

class sympy.vector.orienters.QuaternionOrienter(q0, q1, q2, q3)[源代码]#

类来表示四元数定向器。

__init__(angle1, angle2, angle3, rot_order)[源代码]#

四元数方向用四元数确定新CoordSys3D的方向,四元数定义为围绕单位向量lambda的有限旋转,以一定量θ。

此方向由四个参数描述:

q0=cos(θ/2)

q1=λx sin(θ/2)

q2=λy sin(θ/2)

q3=λz sin(θ/2)

四元数不接受旋转顺序。

参数:

问题0、问题1、问题2、问题3 :表达式

要旋转坐标系的四元数

实例

>>> from sympy.vector import CoordSys3D
>>> from sympy import symbols
>>> q0, q1, q2, q3 = symbols('q0 q1 q2 q3')
>>> N = CoordSys3D('N')
>>> from sympy.vector import QuaternionOrienter
>>> q_orienter = QuaternionOrienter(q0, q1, q2, q3)
>>> B = N.orient_new('B', (q_orienter, ))