1234567891011121314151617181920212223242526272829303132 |
- """Plot streamlines for the 2D field:
- u(x,y) = -1 - x:^2 + y
- v(x,y) = 1 + x - y:^2
- """
- from vedo import Points, settings, show
- from vedo.pyplot import streamplot
- import numpy as np
- settings.default_font = "DejavuSansMono"
- # a grid with a vector field (U,V):
- X, Y = np.mgrid[-5:5 :15j, -4:4 :15j]
- U = -1 - X**2 + Y
- V = 1 + X - Y**2
- # optionally, pick some random points as seeds:
- prob_pts = np.random.rand(200, 2)*8 - [4,4]
- sp = streamplot(
- X,Y,
- U,V,
- lw=2, # line width in pixel units
- direction='forward', # 'both' or 'backward'
- probes=prob_pts,
- cmap='viridis',
- )
- sp.add_scalarbar()
- pts = Points(prob_pts).ps(5).c('white')
- show(sp, pts, __doc__, axes=1, bg='bb').close()
|