尝试一下,交互式的三维计算python库,py3d

py3d是一个我开发的三维计算python库,目前不定期在PYPI上发版,可以通过pip直接安装
pip install py3d

开发这个库主要可视化是想把自己在工作中常用的三维方法汇总积累下来,不必每次重新造轮子。其实现成的python库也有很多,例如scipy.spatial, pyquaternion, open3d等等,但是这些库要么没有可视化功能,要么比较难用,所以自己开发了一个。最开始是想做成一个三维仿真工具,后来发现这个有些困难,工作量太大,所以目前功能局限在三维变换和可视化上。

相比其他的库,这个库有几个特点:

  1. 纯python,没有使用C++
  2. 交互式可视化,在jupyter中可以可视化点云、图片、网格等等,均可缩放、旋转
  3. 支持多种常用三维文件的解析,如PCD,PLY,OBJ等

在自动驾驶和机器人开发中一个常见的任务是坐标系转换,以下展示一个使用py3d计算一个直角坐标系在经过旋转变换R和平移变换T后的新坐标系,并可视化的例子,注意需要在jupyter中运行才能看见可视化结果

python 复制代码
import py3d
coord=py3d.axis(dashed=True)
R=py3d.Transform.from_euler("xyz", [1,2,3])
T=py3d.Transform.from_translation([4,5,6])
new_coord=py3d.axis()@R@T
py3d.render(coord,new_coord)
py3d.label("origin coord", [0,0,0], "orange")
py3d.label("new coord", [4,4.5,6], "orange")

使用文档:https://tumiz.github.io/py3d/

一个人开发,能力和时间是有限的,希望有类似想法的人能参与进来,无论是提出建议,贡献代码,还是发现问题,都是非常欢迎的。

相关推荐
星空椰4 小时前
Python 面向对象高级:继承与类定义详解
开发语言·python
凯瑟琳.奥古斯特4 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
风之所往_4 小时前
Python 3.4 新特性全面总结
python
太阳上的雨天5 小时前
任何格式的文件转Markdown
python·ai
yaoxin5211235 小时前
419. 现代 Java IO 最佳实践 - 写入文本文件
java·windows·python
weixin_468466855 小时前
纳米 AI 搜索新手极速上手指南
人工智能·python·深度学习·搜索引擎·ai·语言模型·自然语言处理
凯瑟琳.奥古斯特6 小时前
数据库原理选择题精选
数据库·python·职场和发展
彦为君6 小时前
JavaSE-07-异常机制
java·开发语言·后端·python·spring
适应规律6 小时前
【无标题】
人工智能·python·算法