Rotating the camera around a figure | Rotating the figure itself
Closed this issue · 3 comments
Hi! I am currently working on a 3D to 2D ASCII art plotter and am using your library for it. You can read more information about that here:
https://github.com/TheRealVira/asciisight
Anyways... The rotation seems to be a bit broken and I am just very confused as of why. Another solution would have been to rotate the figure itself, but I don't seem to find any function for that inside your API. Feedback would be very appreciated 😄
Looking forward to hearing from you!
In 3D, rotation is a bit more complex because there are 3 axes to rotate around rather than just one which means that you'll need 6 keys instead of just 4 to control them all (assuming you're interested in all 3).
As for actually controlling the orientation, the only function vtkplotlib provides is view() which sets absolute orientations using unit vectors but I imagine that you want the exact opposite - to incrementally adjust the orientation using yaw, pitch and roll angles. In which case you can use VTK's own methods directly. The camera is located at fig.camera
. To give you an example:
import vtkplotlib as vpl
fig = vpl.figure()
vpl.mesh_plot(vpl.data.get_rabbit_stl())
text = vpl.text("", color="r")
while True:
text.text = "Incrementing Yaw"
for i in range(120):
fig.camera.Yaw(3)
fig.reset_camera()
fig.update()
text.text = "Incrementing Pitch"
for i in range(120):
fig.camera.Pitch(3)
fig.reset_camera()
fig.update()
text.text = "Incrementing Roll"
for i in range(120):
fig.camera.Roll(3)
fig.reset_camera()
fig.update()
Thank you - that was very useful!
You're welcome.