使用numpy数组执行四元数操作

rowan的Python项目详细描述


罗文

ReadTheDocs StatusCircleCICodecovPyPICodacy BadgeZenodoJOSS

欢迎使用Rowan,一个四元数的Python包。 该包完全建立在numpy之上,并使用numpy数组表示四元数,这意味着所有函数都支持任意高维四元数数组。 四元数被编码为形状为(...,4)的数组,其约定是数组的最终维数(a, b, c, d)表示四元数a + bi + cj + dk。 该软件包涵盖了所有基本的四元数代数和演算操作,还提供了测量距离、执行点云映射和插值的功能。 如果您对如何与罗文合作有任何疑问,请访问 ReadTheDocs page

作者

设置

安装rowan的推荐方法是使用pipconda

通过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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java编译器整数错误   java为什么我不能在eclipse中将jsp添加到google应用程序引擎中?   用于计算的java交换机时区   java将另一个表中的列添加到现有SQL/query语句中   Java线程:在start()之后对线程对象调用run()方法   java问题:使用Xlint重新编译:未选中以获取详细信息   java如何使用控制台中的输入   java计算字符串中最高数字的数量   java将数据源密码置于上下文之外。xml   java如何防止变量永远运行?   是VB。NET SmtpClient API受限于Java SendMail?   java在Jmeter中生成会话ID   使用java从XML检索文本和标记   无法参数化Java swing JComboBox   java在maven多模块项目的父配置中将模块设置为其他模块的依赖项