使用numpy数组执行四元数操作
rowan的Python项目详细描述
罗文
欢迎使用Rowan,一个四元数的Python包。
该包完全建立在numpy之上,并使用numpy数组表示四元数,这意味着所有函数都支持任意高维四元数数组。
四元数被编码为形状为(...,4)
的数组,其约定是数组的最终维数(a, b, c, d)
表示四元数a + bi + cj + dk
。
该软件包涵盖了所有基本的四元数代数和演算操作,还提供了测量距离、执行点云映射和插值的功能。
如果您对如何与罗文合作有任何疑问,请访问
ReadTheDocs page。
作者
- Vyas Ramasubramanimailto:vramasub@umich.edu(主要开发人员)
设置
安装rowan的推荐方法是使用pip或conda。
通过PIP安装
要从pypi安装包,请执行:
pip install rowan --user
通过conda安装
要从conda安装包,首先添加conda forge频道:
conda config --add channels conda-forge
添加conda forge通道后,可以通过 执行
conda install rowan
从源安装
要从源安装,请执行:
git clone https://github.com/glotzerlab/rowan.git
cd rowan
python setup.py install --user
要求
- python=2.7,>;=3.3
- numpy>;=1.10
测试
该包目前在类unix系统上测试python版本2.7和python>;=3.3。 使用circleci对这些具有numpy 1.10及以上版本的python版本执行连续集成测试。
要运行打包的单元测试,请从存储库的根目录执行以下行:
python -m unittest discover tests
要检查测试覆盖率,请确保已安装覆盖率模块:
pip install coverage
然后使用coverage模块运行打包的单元测试:
coverage run -m unittest discover tests
快速启动
这个库可以通过简单地实例化适当的numpy数组并将它们传递给所需的函数来处理四元数。 例如:
importrowanimportnumpyasnpone=np.array([10,0,0,0])one_unit=rowan.normalize(one)assert(np.all(one_unit==np.array([1,0,0,0])))ifnotnp.all(one_unit==rowan.multiply(one_unit,one_unit)):raiseRuntimeError("Multiplication failed!")one_vec=np.array([1,0,0])rotated_vector=rowan.rotate(one_unit,one_vec)mat=np.eye(3)quat_rotate=rowan.from_matrix(mat)alpha,beta,gamma=rowan.to_euler(quat_rotate)quat_rotate_returned=rowan.from_euler(alpha,beta,gamma)identity=rowan.to_matrix(quat_rotate_returned)
文档
rowan的文档用reStructuredText编写,并使用Sphinx编译。 要生成文档,请首先安装sphinx:
pip install sphinx sphinx_rtd_theme
然后,您可以使用sphinx在rowan根目录中运行以下命令,以pdf或html格式创建实际文档:
cd doc make html # For html output make latexpdf # For a LaTeX compiled PDF file open build/html/index.html