如何在sympy.physics.vector模块中定义左手坐标系?
How to define a left handed coordinate system in sympy.physics.vector module?
我正在尝试使用 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 对我也没有太大帮助...
有人有什么建议吗?
sympy.physics.vector 软件包是围绕右手系统构建的。我不认为你可以期望左手系统能够工作,因为所有操作都遵循右手规则,例如交叉产品。为左手系统实现通用功能需要对底层代码进行重大更新。
我正在尝试使用 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 对我也没有太大帮助...
有人有什么建议吗?
sympy.physics.vector 软件包是围绕右手系统构建的。我不认为你可以期望左手系统能够工作,因为所有操作都遵循右手规则,例如交叉产品。为左手系统实现通用功能需要对底层代码进行重大更新。