如何在sympy.physics.vector模块中定义左手坐标系?

时间:2016-11-04 12:21:13

标签: python vector orientation physics sympy

我正在尝试使用sympy.physics.vector模块from here进行一些矢量场操作。作为这个过程的一部分,我想跟踪一些坐标系统,其中一部分将是左撇子。

让我说我开始:

  • 参考框架A(右手; x:右,y:进入页面,z:向上)

  • 参考框架B(左手; x:右,y:进入页面,z:向下)

    from sympy.physics.vector import ReferenceFrame
    A = ReferenceFrame('A')
    B = ReferenceFrame('B')
    

现在我需要定义这些系统之间的关系,我知道这可以实现的唯一方法是使用 orient 来定义两个参考帧之间的一组旋转。现在,我不需要告诉你,没有多少轮换会将右手系统转换为左手系统......我只需要知道参考帧B

 B.z = -A.z 

我无法做到

B[2] = -A[2]

因为<<'ReferenceFrame'对象不支持项目分配>>

使用 CoordinateSym 似乎不会对我有所帮助......

有人有任何建议吗?

1 个答案:

答案 0 :(得分:2)

sympy.physics.vector包是围绕右手系统构建的。我不认为你可以期待左撇子系统工作,因为所有操作都遵循右手规则,例如:交叉产品。实现左撇子系统的一般功能需要对底层代码进行重大更新。