Python 如何使用Pi3d绘制阵列
我有一个包含x、y和z值的数组,如下所示: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
-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()