对结构化数据数组的快速操作。
StructArra的Python项目详细描述
structarray允许您在 结构化(或非结构化)数据的数组。
此库对于在 阵列。
我包括了一个简单的粒子引擎的例子。它有10000个动画 粒子没有太大的麻烦。
这是“提前发布,经常发布”的“提前发布”部分 方程式。已经完成了80%。我只需要完成另外的80%。
快速介绍
这里有一个简单的介绍,介绍如何使用它:
>>> import structarray, random
首先,创建一个带有位置和速度属性的StructArray, 从1000开始。
>>> particles = structarray.StructArray(('x', 'y', 'dx', 'dy'), size=10000)
让我们给粒子一点随机运动。我们可以循环浏览每一项 并分配属性。
>>> for p in particles: ... p.dx = random.random() * 20 - 10 ... p.dy = random.random() * 50
我们还可以按如下索引分配值:
>>> particles[0].dy = 100
或者我们可以将所有四个值赋给一个索引:
>>> particles[0] = (0, 20, 5, 100) # (x, y, dx, dy)
我们可以通过直接将值赋给 阵列:
>>> particles.x = 0 # set x to zero for every item
我们还可以将一个属性的值复制到另一个属性中:
>>> particles.y = particles.x
我们也可以一边做算术:
>>> particles.y = particles.x + 10
那么,现在,我们如何进行一个模拟循环呢?
>>> particles.x += particles.dx >>> particles.y += particles.dy >>> particles.dy -= 9.81
这里重要的是这三个操作中的每一个都应用于 数组中的每个项。这一切都发生在c的一个紧循环中,所以 非常快。即使是10000个粒子。
将数据发送到视频卡非常简单:
>>> glVertexPointer(2, GL_FLOAT, ... particles.get_data_stride(), ... particles.get_data_addr())
当然还有更多的东西要展示。查看 工作示例的源分布
下载
我总是将最新版本上传到StructArray page on PyPI。
安装
运行此命令下载并安装预编译的二进制文件。:
sudo easy_install StructArray
要从源代码处编译structarray,需要python开发头 安装。(这在debian和ubuntu发行版中被命名为python-dev。 我认为RPM发行版将其命名为^{TT3}$。
包含了c文件,因此不需要安装pyrex。但是,如果你 do有pyrex,我只用pyrex-0.9.6.3测试过。结果可能因 旧版本。
安装与大多数其他python模块一样:
python setup.py build sudo python setup.py install