Python的3d数学库

时间:2009-10-12 20:43:21

标签: python math 3d

我正在寻找python中的3d数学库或python绑定。

它需要处理旋转,平移,透视投影,基本上一切。

我不想要的是一个旨在在屏幕上绘图的图书馆,谷歌搜索几个小时只会导致3d库弯曲渲染到屏幕上。我不想要任何可视化,我所需要的是能够提供库x,y,z坐标并接收x,y屏幕坐标。

我不介意它是否是一个可视化库,只要它可以在不向屏幕呈现任何内容的情况下使用它。

对于python有没有这样的东西?

编辑: 请不要推荐scipy / numpy,因为他们不是针对3d数学但是在数学上一般来说,如果我想自己建立图书馆,它们看起来就像很棒的工具,我不这样做。谢谢。

9 个答案:

答案 0 :(得分:5)

OpenCV - Python Interface可以处理您提到的所有操作。

我听说SciPy也非常出色,但我只使用过OpenCV。

答案 1 :(得分:3)

尝试gameobjects - 它是一个数学库,包括用于矩阵和向量的Python类,以及转换方法。我认为它将提供你需要的大部分(如果不是全部),加上纯Python,你可以根据需要修改它。

答案 2 :(得分:3)

transformations.py

用于计算4x4矩阵的库,用于平移,旋转,反射, 缩放,剪切,投影,正交化和叠加阵列 三维齐次坐标以及旋转矩阵之间的转换, 欧拉角和四元数。还包括一个Arcball控制对象和 分解变换矩阵的函数。

作者:   Christoph Gohlke http://www.lfd.uci.edu/~gohlke/   加州大学尔湾分校荧光动力学实验室

答案 3 :(得分:2)

答案 4 :(得分:2)

python-math3d是另一个面向对象的优秀3D数学库 https://github.com/mortlind/pymath3d

将math3d导入为m3d

v = m3d.Vector(1,2,3)#矢量对象

o = m3d.Orientation.new_euler((1,0,0),“ZYX”)#来自一种欧拉角的方位对象

t = m3d.Transform(o,v)#使用向量和方向创建的变换对象

t2 = m3d.Transform()#另一个转换对象(标识)

t2.orient.rotate_x(3)#围绕x

旋转变换

res = t * t2 #Matrix multiplication

答案 5 :(得分:1)

我建议MayaVi。请看一下给定的链接。它完成了你提到的几乎所有事情。

答案 6 :(得分:1)

我现在正在做一个。 https://github.com/adamlwgriffiths/Pyrr

它使用numpy来提高速度。 目的是提供一个纯粹的python 3D数学库。

我正在避免使用外部库,因为我不得不遵循复杂的软件安装。 Python应该很简单。

答案 7 :(得分:0)

PyGame怎么样?我从未使用它,但它可能包含你正在寻找的东西。

答案 8 :(得分:0)

http://cgkit.sourceforge.net/doc/index.html

实现并不总是最好的,但它包括四元数以及标准矩阵和向量类型。我已将它用于几个商业游戏项目的工具。