On Sat, Dec 19, 2009 at 11:24 PM, Jonathan <gu...@uwosh.edu> wrote:
> Dear SAGE community:
>   The Jmol development team is starting to build a plot object into
> Jmol that SAGE could just pass a group of surfaces/meshes to for
> plotting.
>
>  Initially we are talking about a 3-D plot object, which would take
> care of scaling, axis ticks, axis labels and aspect ratios and allow
> an interactive user interface to change these things inside the
> notebook.
>
>  However, I began wondering if we could make something more general
> and if the SAGE community thinks it would be useful to them? How about
> a generic plot object for any number of dimensions?  The basic idea is
> that you could specify which triple of dimensions to use for the x,y,z
> triplet and use a fourth dimension to specify a magnitude at a point
> (plotable as a color intensity, scaled spheres or used to produce an
> isosurface), a fourth and fifth dimension to specify a complex value
> at a point (not sure how to plot that...scaled spheres of different
> colors or a vector field only in one plane?), or a fourth, fifth and
> sixth dimension to plot a vector field.  The key idea being that we
> could choose the triple, qradruple, pentuple or hextuple to plot out
> of any n-tuple.


It would be incredibly awesome if you could do this! Incredibly!

This topic was an obsession of mine about a year ago (I spent about a
month trying to think in four dimensions a year or so a go, after all
three is an arbitrary limit... and mostly failed). So, I have a few
suggestions:

First let's consider an R^a -> R^b function. We must be able to
present ℵ₁ unique b-tuples in a dimensions.

Increasing b is comparatively trivial (change intensity, colour,
shape, etc). The limiting agent is a.

We need to find more ways to present ℵ₁ values... There two options I
see are to use time (ie. the plot changes over time) and give user
controls to slide along dimensions. One could do this with @interact,
but it would be a lot better if it could be handled in jmol: it would
be smoother and hopefully one could change which dimensions were the
sliding ones and which ones were in 3-space with the click of a
button.



The other approach is to challenge that we are actually ℵ₁ values for
each axis. Sage already does this by not plotting each point
(impossible) and just meshing surfaces.

Consider x^2+y^2=9; it is a level set of an R^2->R function (and is in
fact a circle).  If we try to solve for x, we get:

x(y)=∓(9-y^2)^0.5

It's what I've labeled, in my abuse of an already obscure term, a
2-hyperfunction...

We can transform the function then into

x: s ⊂ R->{set}(R)
x(y)={ (9-y^2)^0.5, -(9-y^2)^0.5}
which obviously has the property |x(y)|=2. Thus, we could plot it with
the any approach we can use to plot an R->R^2. For example, we might
use a line and vary the r and b values. Theoretically, this approach
is feasible for any plot with a Hausdorff dimension of 1.

But I think this approach should be avoided. It would be harder to
implement and less intuitive for the end user.



Another thing that comes to mind is that if you move beyond three
dimensions, you will have to give up your triangle based meshes and
move to higher-dimensional equivalents. ...

>
> Any thoughts on this more general idea?  Is anybody aware of
> implementations of something like this that is open source? Or
> something non-open source that we could look at for ideas about how
> things should behave?  We would also welcome more input on the 3D
> object properties.
>
> Jonathan
> a small part of the Jmol development tea

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to