如何用Python创建3D网格?

时间:2014-01-02 10:53:07

标签: python 3d mesh

我有一个三维长方体(X,Y,Z):1 x 1 x 10.我想创建一个3 x 3 x 21节点和2 x 2 x 20有限元的网格,它们是8-节点具有2x2x2积分点的实体元素。我如何使用Python并收集所有积分点的坐标?

enter image description here

(照片来源:Anton Zaicenco)

感谢您的关注!

1 个答案:

答案 0 :(得分:1)

虽然我仍然不完全确定你想要什么,但这里有一个使用numpy.meshgrid打印所有节点的例子:

import numpy

x = numpy.linspace(0, 1, 3)
y = numpy.linspace(0, 1, 3)
z = numpy.linspace(0, 10, 21)
mesh = numpy.meshgrid(x, y, z)
nodes = list(zip(*(dim.flat for dim in mesh)))
for node in nodes:
    print(node)

虽然这也可以作为三个简单的循环来完成:

for x in numpy.linsapce(0, 1, 3):
    for y in numpy.linspace(0, 1, 3):
        for z in numpy.linspace(0, 10, 21):
            print((x, y, z))

有关numpy.meshgrid使用情况的详细信息,请参阅documentation