1# -*- coding: utf-8 -*- 2""" 3Demonstrate use of GLLinePlotItem to draw cross-sections of a surface. 4 5""" 6## Add path to library (just for examples; you do not need this) 7import initExample 8 9import pyqtgraph.opengl as gl 10import pyqtgraph as pg 11import numpy as np 12 13app = pg.mkQApp("GLLinePlotItem Example") 14w = gl.GLViewWidget() 15w.show() 16w.setWindowTitle('pyqtgraph example: GLLinePlotItem') 17w.setCameraPosition(distance=40) 18 19gx = gl.GLGridItem() 20gx.rotate(90, 0, 1, 0) 21gx.translate(-10, 0, 0) 22w.addItem(gx) 23gy = gl.GLGridItem() 24gy.rotate(90, 1, 0, 0) 25gy.translate(0, -10, 0) 26w.addItem(gy) 27gz = gl.GLGridItem() 28gz.translate(0, 0, -10) 29w.addItem(gz) 30 31n = 51 32y = np.linspace(-10,10,n) 33x = np.linspace(-10,10,100) 34for i in range(n): 35 yi = y[i] 36 d = np.hypot(x, yi) 37 z = 10 * np.cos(d) / (d+1) 38 pts = np.column_stack([x, np.full_like(x, yi), z]) 39 plt = gl.GLLinePlotItem(pos=pts, color=pg.mkColor((i,n*1.3)), width=(i+1)/10., antialias=True) 40 w.addItem(plt) 41 42if __name__ == '__main__': 43 pg.exec() 44