Matching volumes and surfaces [message #47090] |
Thu, 19 January 2006 18:52  |
Kenneth P. Bowman
Messages: 585 Registered: May 2000
|
Senior Member |
|
|
I have a 2-D data set a(x,y) and a 3-D data set b(x,y,z) that are
defined on the same x and y grid.
I'm using iSurface to plot a and iVolume to overplot an isosurface of b
in the same display. At the bottom of this message is an example that
uses an 11 x 11 grid with data coordinates x, y, and z in the range (0,
10). The arrays a and b have been created so that a should coincide
exactly with the isosurface b=0.
After running the commands below, the 2-D surface appears as a yellow
plane slicing diagonally upward across the volume cube in the
x-direction. Then, I choose Operations...Volume...Isosurface, change
the isosurface value to 0.1, and click OK. This renders the b=0.1
isosurface in gray. (Setting the isosurface to 0.1 ensures that the
isosurface is slightly above the surface a.)
The resulting image can be seen here
http://csrp.tamu.edu/hiaper/archive/render/rendering.jpg
The rather obvious problem is that the isosurface only covers the ranges
x = (0, 9) and y = (0, 9).
Obviously I either don't understand the VOLUME_LOCATION and
VOLUME_DIMENSIONS keywords, or I don't understand how the isosurface
algorithm works, or I'm making some other mistake (the possibilities are
manifold ;-) ).
Can anyone steer me to the path of righteous rendering?
Thanks, Ken Bowman
n = 11
x = FINDGEN(n)
a = REBIN(x, n, n)
iSurface, a, x, x
xx = REBIN(x, n, n, n)
zz = REBIN(REFORM(x, 1, 1, n), n, n, n)
b = zz - xx
iVolume, b, /OVERPLOT, $
VOLUME_LOCATION = [ 0.0, 0.0, 0.0], $
VOLUME_DIMENSIONS = [10.0, 10.0, 10.0]
|
|
|