Python 如何使用Pi3d绘制阵列

Python 如何使用Pi3d绘制阵列,python,arrays,3d,raspberry-pi,draw,Python,Arrays,3d,Raspberry Pi,Draw,我有一个包含x、y和z值的数组,如下所示: -130.000000 735.000000 1.733333 -128.000000 735.000000 1.706667 -126.000000 735.000000 1.680000 -124.000000 735.000000 1.653333 -130.000000 736.000000 1.733333 -128.000000 736.000000 1.706667 -126.000000 736.000000 1.68000

我有一个包含x、y和z值的数组,如下所示:

-130.000000 735.000000 1.733333 
-128.000000 735.000000 1.706667 
-126.000000 735.000000 1.680000 
-124.000000 735.000000 1.653333 
-130.000000 736.000000 1.733333 
-128.000000 736.000000 1.706667 
-126.000000 736.000000 1.680000 
-124.000000 736.000000 1.653333 
-122.000000 736.000000 1.626667 
.......
我已经搜索了如何绘制阵列,但我没有幸运地发现这一点

那么我如何使用Pi3d库绘制这个阵列呢? 为了得到这样的结果

这是GitHub上库的最新版本


注意:我使用的是覆盆子圆周率(Raspberry pi)

很明显,你已经找到了制作图像的地方,看看你已经做了些什么会很有用。你能发布你的代码或链接吗

在pi3d中,必须向缓冲区类构造函数传递至少两个数组。最小值是一个顶点数组,根据您的帖子,以及一个定义三角形面的数组。(还可以为每个顶点传递法向量数组和纹理坐标数组)。所以对于一个正方形:

pts = [[0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 1.0, 0.0], [1.0, 0.0, 0.0]]
faces = [[0, 1, 2], [0, 2, 3]]
shape = pi3d.Shape(...) # arguments as per docs
shape.buf[0] = pi3d.Buffer(shape=shape, pts=pts, texcoords=[], faces=faces)
通过阅读本文,您可能可以了解更多有关系统工作原理的信息

编辑我刚刚看了你关于stackoverflow的另外三个问题,也许你想把顶点画成点或者线而不是曲面?如果是这种情况,则可以使用

shape = pi3d.Lines(vertices=pts)
同样,您可以传递各种参数来控制线条的绘制方式,请参见文档

编辑2,在更仔细地阅读您的问题后,我发现您还没有成功地使用pi3d做任何事情,并且希望获得启动帮助。您需要阅读文档并浏览演示程序;但这是你需要做的事情,才能得到像你贴的那样的照片:

import pi3d
import math

DISPLAY = pi3d.Display.create(x=100, y=100, w=600, h=600)
CAMERA = pi3d.Camera()
shader = pi3d.Shader("mat_flat")

verts = [[-130.000000, 735.000000, 1.733333],
          [-128.000000, 735.000000, 1.706667], 
          [-126.000000, 735.000000, 1.680000], 
          [-124.000000, 735.000000, 1.653333], 
          [-130.000000, 736.000000, 1.733333], 
          [-128.000000, 736.000000, 1.706667], 
          [-126.000000, 736.000000, 1.680000], 
          [-124.000000, 736.000000, 1.653333], 
          [-122.000000, 736.000000, 1.626667]]

loop_verts = [[5 * math.sin(a / 57.3), 5 * math.cos(a / 57.3), 0.0] for a in range(360)]

line = pi3d.Lines(vertices=verts, material=[0.7, 0.7, 0.1], line_width=4, strip=True,
                 x=128, y=-735, z=8.0)
line.set_shader(shader)
loopx = pi3d.Lines(vertices=loop_verts, material=[1.0, 0.0, 0.0], strip=True, z=8.0)
loopx.set_shader(shader)
loopy = pi3d.Lines(vertices=loop_verts, material=[0.0, 1.0, 0.0], strip=True, z=8.0, rx=90)
loopy.set_shader(shader)
loopz = pi3d.Lines(vertices=loop_verts, material=[.0, 0.0, 1.0], strip=True, z=8.0, ry=90)
loopz.set_shader(shader)

CAMERA.position((-1.0, 1.0, 0.0)) # NB look at pi3d_demos for examples of using the mouse and keyboard
CAMERA.rotate(-5.0, -5.0, 0.0)    # for camera positioning and closing the program down

while DISPLAY.loop_running():
  line.draw()
  loopx.draw()
  loopy.draw()
  loopz.draw()