PyGfx points and lines exampleΒΆ
Note that this example depends on pygfx (``pip install -U pygfx``).
An example demonstrating points and lines, in two separate canvases.
[1]:
import numpy as np
import pygfx as gfx
from wgpu.gui.auto import WgpuCanvas
[2]:
canvas1 = WgpuCanvas()
renderer1 = gfx.WgpuRenderer(canvas1)
scene1 = gfx.Scene()
x = np.linspace(20, 620, 200, dtype=np.float32)
y = np.sin(x / 10) * 100 + 200
positions = np.column_stack([x, y, np.zeros_like(x)])
colors = np.random.uniform(0, 1, (x.size, 4)).astype(np.float32)
colors[:,3] = 1 # all opaque
line = gfx.Line(
gfx.Geometry(positions=positions, colors=colors),
gfx.LineSegmentMaterial(thickness=6.0, color=(0.0, 0.7, 0.3, 0.5), vertex_colors=True)
)
scene1.add(line)
camera1 = gfx.ScreenCoordsCamera()
canvas1.request_draw(lambda: renderer1.render(scene1, camera1))
canvas1
[2]:
snapshot
[3]:
canvas2 = WgpuCanvas()
renderer2 = gfx.WgpuRenderer(canvas2)
scene2 = gfx.Scene()
positions = np.random.normal(0, 0.5, (100, 3)).astype(np.float32)
points = gfx.Points(
gfx.Geometry(positions=positions),
gfx.PointsMaterial(size=10, color=(0, 1, 0.5, 1.0))
)
scene2.add(points)
scene2.add(gfx.Background(None, gfx.BackgroundMaterial("#9999FF")))
camera2 = gfx.NDCCamera()
canvas2.request_draw(lambda: renderer2.render(scene2, camera2))
canvas2
[3]:
snapshot
[ ]: