Making views of 3D object `nest'

• To: mathgroup at christensen.cybernetics.net
• Subject: [mg305] Making views of 3D object `nest'
• From: dmwood at sst.nrel.gov (David M. Wood)
• Date: Thu, 8 Dec 94 16:28:16 MST

```Dear Mathgroup,

I have some spiffy graphics of the electron density in Si, displayed as
level surfaces (results of ListContourPlot3D) restricted to a single unit
cell (a cube). The result is a 3D Graphics object, basically a view of the
cube with interesting surfaces inside.  Because they are unit cells of
the crystal, such cubes would fill all of space. I'd love to display several
*adjacent* unit cells, to emphasize the periodicity in the crystal.

**The problem**: I don't know how to *systematically* change the ViewPoint for
these surfaces so as to assure that the resulting views of the cubes `nest'
properly, i.e., will perfectly fit when butted up against each other.

My first try was to move the ViewPoint out as far as I could, to suppress
the foreshortening of the cubes which I think is the cause of the failure
to `nest'.  This helped some, but I couldn't make the ViewPoint far enough
away for satisfactory results. Ideally, I *want* the foreshortening, since
it helps in the illusion of three dimensionality.

Tom Wickam-Jones' wonderful new book Mathematica Graphics carefully explains
how you can coerce Mma into using `user units' [those used in specifying
x, y, and z ranges via, for example, the MeshRange option], and how the
perspective (foreshortening) depends on a variety of variables the user
can specify.  I'm sure the answer lies somewhere in there, but before I
invest the time:

1. Has someone developed a simple algorithm or package for systematically
changing the ViewPoint from one view to the next so that the two different
views will `nest', i.e., fit perfectly when the cubes are moved together so
that they share a common face?

2. Is there some operation I can perform on my data, or the three dimensional
object I'm representing, which will periodically repeat the object to
achieve what I want?  [The data is already sizeable: numbers on a
30x30x30 mesh, so anything which increases the size of this matrix is
probably not a good idea.]

Many thanks!

--
David M. Wood           ||      Solid State Theory Group
dmwood at nrel.nrel.gov    ||      Branch 4510
Phone: (303) 384-6642   ||      National Renewable Energy Laboratory
Fax:   (303) 384-6531   ||      1617 Cole Blvd., Golden, CO 80401-3393