Limiting the display range of a 3d plot
Is there any way to limit the display range of a 3d plot, using either jmol or tachyon? (Something similar to xmax and ymax with a 2d plot.)
Is there any way to limit the display range of a 3d plot, using either jmol or tachyon? (Something similar to xmax and ymax with a 2d plot.)
I ran into this issue recently, and I ended up implicitly plotting a simple function like
sage: implicit_plot3d(x,(x,-10,10),(y,-10,10),(z,-10,10),opacity=0)+...
(where the ... were the rest of the functions I wanted to plot). This at least gave the graph a controllable scale, and then I adjusted the other functions to be within the box created by my first function.
I'm pretty sure the answer to this question is: "no". Robert Bradshaw and I implemented almost all of the 3D plotting code, and I specifically remembering not getting to this. I also just looked at the relevant source code and didn't see anything:
sage: f(x,y)=x^2+y^2
sage: G = plot3d(f, (-1,1), (-2,2))
sage: G.show??
By the way, the way this should work once it is implemented is that you'll type
sage: G.show(zmax=2)
and the plot would get cutoff at 2 instead of at 5 like it is currently shown.
I'm also not sure what the best way to implement this is. For some renderers it might easy -- just pass an option on to clip the viewing rectangle. One could also try to clip the 3d scene itself, but this could be arbitrarily hard.
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2010-08-18 20:08:20 +0100
Seen: 2,403 times
Last updated: Oct 22 '11
use a colormap for implicit_plot3d
The tachyon object used for rendering plots
Combination of lambda function and plot3d(?)
Multiple 3D plots in one panel -> graphics_array and 3D?
Plotting successive 3D plots in a for loop (only the last one can be plotted!)
Getting range from things which aren't integers yet, but will be