-
Notifications
You must be signed in to change notification settings - Fork 60
VectorsGraphic #929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VectorsGraphic #929
Conversation
kushalkolar
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
few questions
|
Interactions work well: vectors-2025-10-28_01.52.43.mp4figure = fpl.Figure(size=(700, 700))
start, stop, step = 0, 2 * np.pi, 0.4
# get uniform x, y positions
x, y = np.meshgrid(np.arange(start, stop, step), np.arange(start, stop, step))
# vectors, u and v are x and y components indication directions
u = np.cos(x)
v = np.sin(y)
# positions of each vector as [n_points, 2] array
positions = np.column_stack([x.ravel(), y.ravel()])
# directions of each vector as a [n_points, 2] array
directions = np.column_stack([u.ravel(), v.ravel()])
vector_field = figure[0, 0].add_vector_field(
positions=positions,
directions=directions,
)
def update(change):
val = change["new"]
start, stop, step = 0, 2 * np.pi, 0.4
start += val
stop += val
# get uniform x, y positions
x, y = np.meshgrid(np.arange(start, stop, step), np.arange(start, stop, step))
# vectors, u and v are x and y components indication directions
u = np.cos(x)
v = np.sin(y)
directions = np.column_stack([u.ravel(), v.ravel()])
vector_field.directions = directions
slider = FloatSlider(value=0, min=-5, max=5, step=0.01)
slider.observe(update, "value")
VBox([figure.show(), slider])Need to wait for pygfx/pylinalg#107 before merging into fastplotlib main |
|
The recursion error with the ome-zarr file makes no sense, going to get rid of it from tests and only show the code in the docs until they fix whatever is up. |
|
📚 Docs preview built and uploaded! https://www.fastplotlib.org/ver/vector-field |
Co-authored-by: Caitlin Lewis <caitlin9165@gmail.com>
clewis7
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from that one example that won't run, everything LGTM
closes #560
Uses instanced meshes to create the 3D vector representations and place them in 3D space.
VectorsGraphicgraphic which is based on instanced meshes built by merging a cone and cylinder mesh.VectorDirectionswhich manages the positions of the arrows through modifying the translation elements of the transform matrix of the instance bufferVectorDirectionswhich manages the directions of the arrows through modifying the entire transform matrix of the instance bufferCan implement per-vector colors after pygfx/pygfx#1221 later in a future PR.
Can do some fun electromagnetism animations with this.
Very simple API: