-
Notifications
You must be signed in to change notification settings - Fork 265
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
Animate different actors one at the time #30
Comments
Hi @vianamp from vtkplotter import *
import numpy as np
vp = Plotter(interactive=False)
coo = np.random.rand(32*12).reshape(32,12)
for i in range(len(coo)):
u = coo[i,3:6]
v = coo[i,6:9]
q = coo[i,9:12]
ell = Ellipsoid(pos=(2.5*coo[i,0], 2.5*coo[i,1], 2.5*coo[i,2]),
axis1=u, axis2=v, axis3=q)
scals = [i] * ell.N()
ell.pointColors(scals, vmin=0, vmax=31)
vp += ell
vp.show()
interactive() Let me know if you need more help. Also, you can find more examples of animations in example/simulations directory which may fit your need. |
Thanks for quick reply. What if I need only one timepoint to be shown at the time? And also to keep the bounding box fixed at the largest size that fits all the objects? |
Also, I got this error when I tried to run your code on a jupyter notebook:
|
There are 2 ways of doing it:
from vtkplotter import *
import numpy as np
vp = Plotter(interactive=False)
coo = np.random.rand(32*12).reshape(32,12)
world = Box([1,1,1], 5,5,5).wireframe().alpha(0) ##########
for i in range(len(coo)):
u = coo[i,3:6]
v = coo[i,6:9]
q = coo[i,9:12]
ell = Ellipsoid(pos=(2.5*coo[i,0], 2.5*coo[i,1], 2.5*coo[i,2]),
axis1=u, axis2=v, axis3=q)
scals = [i] * ell.N()
ell.pointColors(scals, vmin=0, vmax=31)
vp.show(world, ell)
interactive() About the jupyter thing indeed this a current limitation (or ... bug) due to how the K3D backend works... |
I see what you mean. My final code looks like this:
However, I don't actually see the animation. Only the last timepoint is shown. |
Yes.. the jupyter functionality is still experimental and at the moment is not working well with loops. from vtkplotter import *
embedWindow(False) then the normal vtk rendering window will pop up. |
How to fix the viewing angle to the first frame. The object moves a little bit in the following gif. |
you can either add an invisible box: in the ex. above, as the the object are added randomly, the first solution is probably the best. |
Hi, marcomusy~ How to add a description for each frame like: If I set by |
@LogWell |
Hi guys. First of all, thank you so much for developing vtkPlotter. I have been a VTK user (C++ and Python) for many years now and I found amazing what can be achieved using vtkPlotter with only a few lines of code.
Here is what I am working on. I have a time sequence of an object (closed mesh) with 32 timepoints. I want to animate the movement and deformation of this object in time. Usually I would export each timepoint as a vtk polydata file, open the sequence of files in paraview and play it. However, I want to do that in vtkPlotter if possible. The code bellow is my very first attempt -- no animation so far. Could you guys help me to improve it? I can help to turn this into an official example if you think it might be of interest of others. Thanks a lot,
The text was updated successfully, but these errors were encountered: