Re: iTools problem with setting isotropic in 8.0 [message #72105] |
Mon, 09 August 2010 11:23  |
Erik Rasmussen
Messages: 7 Registered: July 2010
|
Junior Member |
|
|
On Aug 7, 12:30 pm, Erik Rasmussen <ra...@rasmsys.com> wrote:
> It seems that something changed between 7.1 and 8.0 that is not
> allowing a visualization to be isotropic in iTools.
>
> My IDLitVisualization instance has /ISOTROPIC set, and this should
> force the entire view hierarchy to be isotropic. It does not.
>
> Further, in the IDLITSYS_CREATETOOL function I have tried using no
> SCALE_ISOTROPIC keyword, which should default to zero for that
> variable, which should honor the /ISOTROPIC request in my
> visualization. I have also tried SCALE_ISOTROPIC=1, which should
> force isotropic scaling in any situation, and I have tried
> SCALE_ISOTROPIC=2, ANISOTROPIC_SCALE_3D = 1.0, which should trick the
> iTool into isotropic scaling. None of these worked.
>
> Gosh I would hate to have to do a kludge like a transparent cube to
> trick IDL into thinking the Z range is the full range of the gridded
> data, instead of the spatial range of only the isosurface being
> plotted.
>
> Hopefully this is me being bone-headed. If I figure this out in the
> near-term, I will 'fess up and explain the error.
>
> Anyone else notice this behavior or have any advice?
>
> Thanks.
> Erik
I have done quite a bit of digging, and I think I have a way to
engineer my way out of this box. A few more findings...
1) It appears that the iTools notion of isotropy is isotropy in the x-
y plane only. For example, suppose I have a Data Space that is 1 unit
in x size, 2 units in y size, and 10 units in z size. With
ISOTROPIC_SCALING set to 2 (use anisotropic depiction) at tool
creation time, the visualization is a cube as expected (the scale
factors are different on all three axes). With ISOTROPIC_SCALING set
to 1 (isotropic), the x-y plane is a rectangle that is twice as long
in y as in x, but the z axis is always the same length as the longest
of the {x,y} axes, and the entire z extent is scaled into this axis.
In other words, the plot IS isotropic in the x-y plane, but rarely/
accidentally in the z direction. The z scaling is always the actual
data extent scaled into the length of the longest of the {x,y} axes.
A true isotropic behavior, I believe, would be for the plot to have a
y axis double the length of the x axis, and a z axis 20 times the
length of the x axis.
2) I think I was mistaken that this is a 7.1 -> 8.0 transition
problem; I think the problem is present in earlier versions.
3) I call it a "problem"; maybe it's just a problem for me.
4) Probably the way to force a true 3D isotropy is to use the /
ISOTROPIC property in any visualization, and the /SCALE_ISOTROPIC
property when I create the iTool. Then, in my code, I will force the
z extent of the data to be equal to the largest extent of the {x, y}
data. This can be done by accessing the IDLitVisDataSpace instance,
and adjusting the Z_MINIMUM and Z_MAXIMUM, etc. properties in some
reasonable (TBD!) way to force isotropy.
Every time (and there have been many!) that I find myself in this sort
of box (having to engineer around what I perceive to be a framework
deficiency) I eventually discover that I have just misunderstood how
to use the framework as designed, and the real solution is much
simpler. I hope I have that revelation on this one as well.
Erik
|
|
|