又是一个四元数库
pyquatlib的Python项目详细描述
侏儒
只是另一个四元数的库。 关注可用性。在
安装
假设您使用pip
来管理python安装,
您可以将此软件包安装为
pip install pyquatlib
为了安装虚拟环境, 切换到代码目录,然后运行
^{pr2}$基本用途
完整的文档可以用
make docs
以下主要是为了举例说明。在
有几种方法可以创建四元数:
>>>fromquaternionsimportQuaternion>>>importnumpyasnp>>>Quaternion(np.array([1,-2,3]))Quaternion:((0,array([1,-2,3])))>>>Quaternion((0,np.array([1,2,3])))Quaternion:((0,array([1,2,3])))
支持具有兼容数据结构的左操作和右操作。在
>>>data=np.full((4,3),[1,2,3])>>>dataarray([[1,2,3],[1,2,3],[1,2,3],[1,2,3]])>>>data-Quaternion([2,1,1,1])[Quaternion:((-2,array([0,1,2]))),Quaternion:((-2,array([0,1,2]))),Quaternion:((-2,array([0,1,2]))),Quaternion:((-2,array([0,1,2])))]>>>Quaternion([1,0,-1,0])+data[Quaternion:((1,array([1,1,3]))),Quaternion:((1,array([1,1,3]))),Quaternion:((1,array([1,1,3]))),Quaternion:((1,array([1,1,3])))]>>>data*Quaternion(np.array([1,2,3,4]))[Quaternion:((-20,array([0,4,2]))),Quaternion:((-20,array([0,4,2]))),Quaternion:((-20,array([0,4,2]))),Quaternion:((-20,array([0,4,2])))]>>>Quaternion([0,1,-1,-1])/data[Quaternion:((-0.2857142857142857,array([0.07142857,0.28571429,-0.21428571]))),Quaternion:((-0.2857142857142857,array([0.07142857,0.28571429,-0.21428571]))),Quaternion:((-0.2857142857142857,array([0.07142857,0.28571429,-0.21428571]))),Quaternion:((-0.2857142857142857,array([0.07142857,0.28571429,-0.21428571])))]
还包括来自兼容数据结构的几个转换函数。
例如,要将(n,3)数组转换为四元数列表,请使用to_quaternion
:
>>>vectors=np.random.rand(100,3)>>>vectorsarray([[0.02219696,0.61847575,0.68714365],[0.56104393,0.3529833,0.8188565],...[0.38190174,0.59151826,0.37396559]])>>>Quaternion.to_quaternion(vectors)[Quaternion:((0.0,array([0.02219696,0.61847575,0.68714365]))),Quaternion:((0.0,array([0.56104393,0.3529833,0.8188565]))),Quaternion:((0.0,array([0.84834741,0.02304604,0.33619428]))),...Quaternion:((0.0,array([0.38190174,0.59151826,0.37396559])))]
错误报告和功能请求
Bug报告和特性请求是完全受欢迎的。 最好的方法是打开一个issue on this code's github page。对于错误报告, 请尝试包含一个最小的工作示例来演示 问题。在
Pull requests 当然,如果你知道 你知道这是一个新的功能,还是一个错误的想法 如何实施。在
这段代码通常在python3的最新版本上进行测试* 测试覆盖相当完整。在
- 项目
标签: