We draw a spiral of spheres:
sage: v = [(sin(i),cos(i),i) for i in [-4,-3.5,..4]]
sage: S = sum(sphere(v[i], size=1/2, color=((i-4)/8, 1/2,(4-i)/8)) for i in range(len(v)))
sage: S.show(aspect_ratio=[1,1,1])
NOTE: The sphere above have holes in them. This is a \emph{bug} in jmol.
* Only the last jmol 3d image is displayed, e..g., in one notebook cell
sage: x, y = var('x,y')
sage: plot3d(x^2 + y^2, (x,-2,2), (y,-2,2))
sage: plot3d(sin(x*y), (x, -pi, pi), (y, -pi, pi))
only shows the second plot.
Final todo push for 2.9.2:
(done) * axes labels (but don't break tachyon!)
* make sure options to plot commands get passed through to show
* the following commands:
checklist -- each option is documented
(done) -- kwds get saved for show
(done) - parametric_plot3d
- list_plot3d: implement algorithm from plane.
(needs tachyon) - line3d
- frame3d
- plot3d
(done) - text3d
(parameter to line3d) - arrow
- torus
- cone
(done) - point
(done) - sphere
(done) - tetrahedron
- cube
- octahedron
- dodecahedron
- icosahedron
(done) * make sure rgbcolor, color and opacity work for all plots.
(done) * clean up all doctests
=====================================================================
General TODO:
* implement frame_thickness and frame_color for everything in platonic.py, not just for cube.
* Make it so all extra parameters to any ploting commands (in 2d or 3d)
are saved and passed through to show -- or at least those that
are relevant, e.g., xmin, xmax, etc.
* Fix all doctests now that show is not needed by default.
* aspect_ratio for 2d plots.
Jmol bugs:
* reloading a worksheet kills all jmol applets! -- note if we get
rid of jmolSetDocument(cell_writer) this doesn't happen; but then
other things break. Probably need to save the javascript and
execute it each time we releoad.
* Sphere(0.3,color="red").translate([1,1,-1]) has *holes* in it!!
* (done) Default zoom is useless -- we will have to rescale the whole scene I think.
Basically we have to figure out the true range of the 3d plot in each direction,
then rescale everything into a 10x10x10 square.
We should draw axis and allow for aspect ratios.
* Invalid color doesn't yield an error message, e.g., Icosahedron(texture="yello")
* color --> rgbcolor
* In parametricsurface:
except: # TODO -- this would catch control-C,etc. -- FIX THIS TO CATCH WHAT IS RAISED!!!!
* Observation:
jmol embedded applets *crash* when more than 10 or so appear in
a page... unless I make them all small (e.g. 50 pixels) in which
case they DO NOT crash.
Jmol todo:
* names should make sense (basically like in mathematica) and be lower case
* for user exposed functions, (not necessarily for the classes)
* Dynamic resizing in the notebook
* Javascript controls in the notebook
Tachyon bugs:
* Text3D doesn't work