Re: [opendx-users] Re: hints symmetrical calculations

2000-06-22 Thread Thomas A. Gardiner
Nancy,

On Thu, 22 Jun 2000, nancy collins wrote:

sorry if i've been missing the point.

Absolutely no need to apologize; you're doing ME the favor! :-)

 can you explain to me if this is the
approximation you are talking about?   take N identical 2D sheets
of quads, and stack them into a 3D volume of cubes so the data values
are constant along the stacking axis, and then warp that volume into
a sphere or torus.   or something different?

Something different.   Rather than describing coordinates and coordinate
systems, let's try something visceral.  Imagine a doughnut or bagle.  Boy
this is tough to describe in words!  Set the bagle flat on the table and
in order to share it with a friend cut it vertically in half in two
places. (not very good for putting cream chease on it, but I prefer mine
plain.)  Now looking at the cut ends we see a solid circular cross section
of bagle.  Now for various reasons, instead of it being round (say hand
rolled) make it square in cross section (machine extruded).  Now put the
two halves back together again.  What we have is square in cross section
and forming a circle.  

This is the real representation of my data.  It is constant inside of this
cylindrically symmetric, square cross sectioned, ring. Since it is
constant I only need one number to describe it's value.  The hard part is
that if I pick four cross sectional points say (1,1) (1,2) (2,1) and (2,2)
they are not only connected to one another but to an infinite set of
points which form the corners or edges of my square ring.

Mathematically,

Take a cartesian coordinate system (x,y,z) and a cylindrical coordinate
system (r,phi,z).  A 1-1 transformation between these coordinates systems
is given by 

x = r * cos(phi)  and y = r * sin(phi)

Take the volume interior to the bounding surfaces:
r=1;  r=2;  z=1;  z=2;

This gives a square cross sectioned ring.  I would like to describe this
geometry to DX and ask it to fill this volume with a value.

A picture is really worth a thousand words!

Tom


Re: [opendx-users] Re: hints symmetrical calculations

2000-06-22 Thread Chris Pelkie

A picture is really worth a thousand words!

Tom

Speaking of that, does anyone know if this mailserver would block
attachments? A picture (like a jpg or something) probably would go a long
way right about now.

I think I know what you described, but I think that's exactly what Nancy
described to you (I was starting to think you had a stack of solid disks
like a pile of pancakes, but now you've described a mesh that is warped
around the cylinder axis, right?). So it's not a 2D surface as Ned opined,
but a 3D solid that after warping is a 3D solid with a hole in the middle.
Are we all agreed on that? (By the way, I'm damned glad Ned joined in this
discussion! I was laying off hoping not to become a gerbil in an
outpost.com commercial while great forces raged overhead, figuratively
speaking of course).

However, I think you want to describe the whole thing via a parametric
equation, and that you cannot do in DX (you can warp the mesh positions
via a formula in Compute, but you cannot succinctly describe a parametric
curve other than an [orthogonal || skewed orthogonal] grid of 1D, 2D, or 3D
(using origin/delta/counts, which are the terms of a linear parametric
equation that you never see). You really do have to sample space
(positions), then connect these positions with interpolation pathways (even
if the data value is constant).

If the data is constant, you can describe it succinctly for arbitrary n
positions with the constantarray declaration, or simply by running the
field through Compute(a) where a is the desired constant value.
Nevertheless, DX takes the data component to have a value for each
position if pos-dependent or each connection element if con-dep.

The resolution of the curved object will ultimately be defined by the
number of positions you create (thus NC's discussion of Refine). There are
no curved connection types in DX: you have no connections for scattered
data, 1D lines (which can be in 1,2,or 3space), 2D triangles and quads
which can exist in 2 or 3space, cubesNd (abbreviated cubes for 3D; other
N's currently not implemented) and tetrahedra for 3D volumetric space.
They all have straight sides since in every case, each edge connects 2
positions in minimal distance (non-Einsteinian). To get curvature you add
more sample positions and more connections. Yes, this makes the object much
much larger than a simple parametric equation description, but the renderer
needs objects mapped into a 3D space to bounce light off, so ultimately
that's why objects have positions and connections in DX. NURBS were not
invented to the best of my recollection when DX was first written (or at
least not popular). If someone wants to dive in and implement a grand
extension to the DX data model AND renderer, this might be doable, but as
it stands you describe geometry explicitly.

I believe that one of the lessons NC was imparting though was that it is
possible with a bit of thought to generate a lot of objects from parametric
equations using Construct, etc. You can see some interesting examples of
how to make Quadric surfaces by browsing the CTC DX Repository for the
macros that Bruce Land developed a few years back when he taught the
computer graphics class here at Cornell. These might inspire some ideas.
The result is still a Field with (generally) a lot of positions and
connections and if needed, data mapped to one or the other.

However, I am not qualified to answer your concerns about whether your
vectorial data will be properly handled before and after positions are
warped. I kicked this around with a resident solar scientist here and he
concluded that it might be safer to either precalculate the data in the
correct space, or to do it in a custom module, which is what I think Ned
also suggested. However, it seems to me that if you apply the same warp to
the vector data as you do to the positions (in different Computes,
naturally), that you'd get the right answer from div/curl. I could be very
wrong.

DX is first a visualization tool, then with compromises, an analytical
tool. Whenever there's doubt about its analytical capabilities, I'd advise
people to do their own calculations then import and visualize to alleviate
doubt. Of course, now that the code is open, you can inspect it for
reassurance.

Chris Pelkie
Vice President/Scientific Visualization Producer
Conceptual Reality Presentations, Inc.
30 West Meadow Drive
Ithaca, NY 14850
[EMAIL PROTECTED]
(607) 257-8335 or (607) 254-8794



[opendx-users] I'm out

2000-06-22 Thread Chris Pelkie
BTW, I'll be out for the next week more or less, if anyone cares. I'm not
shunning any discussions! but you may not get a reply til I get back on Jul
5.

Chris Pelkie
Vice President/Scientific Visualization Producer
Conceptual Reality Presentations, Inc.
30 West Meadow Drive
Ithaca, NY 14850
[EMAIL PROTECTED]
(607) 257-8335 or (607) 254-8794



[opendx-users] root.6% dx BUG IN DYNAMIC LINKE

2000-06-22 Thread Steve Ettorre
Hi-

I am still having a dynamic linker problem with opendx-4.1.0. When I
execute dx -uionly I get:

BUG IN DYNAMIC LINKER ld.so: dl-version.c: 210: _dl_check_map_versions:
Assertion `needed != ((void *)0)' failed!

I am running Redhat v6.1. Following some advice I recevied from the
list, I made sure that I am running the latest versions of glib and
ld.so; i.e.

glibc-2.1.3-16
ld.so-1.9.5-13

However, I still have the problem. Any suggestions are greatly
appreciated.

TIA,
-S.

--
Steve Ettorre
e-mail: [EMAIL PROTECTED]
---
...thinking is not consciousness -
 it requires hard work... - Rush Limbaugh
---



Re: [opendx-users] root.6% dx BUG IN DYNAMIC LINKE

2000-06-22 Thread Thomas A. Gardiner
Hi,

I'm not quite sure what the problem is, but I am currently running rh6.1
and opendx 

$ rpm -q opendx
opendx-4.1.0-1
$ rpm -q glibc
glibc-2.1.2-11
$ rpm -q ld.so 
ld.so-1.9.5-11

Everything seems to work just fine for me.  Say, you did follow the README
and copy libstdc++ to /usr/lib and make a link to it, right?

ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++6.1-2.so.3

Just a guess...

Tom

On Thu, 22 Jun 2000, Steve Ettorre wrote:

Hi-

I am still having a dynamic linker problem with opendx-4.1.0. When I
execute dx -uionly I get:

BUG IN DYNAMIC LINKER ld.so: dl-version.c: 210: _dl_check_map_versions:
Assertion `needed != ((void *)0)' failed!

I am running Redhat v6.1. Following some advice I recevied from the
list, I made sure that I am running the latest versions of glib and
ld.so; i.e.

glibc-2.1.3-16
ld.so-1.9.5-13

However, I still have the problem. Any suggestions are greatly
appreciated.

TIA,
-S.

--
Steve Ettorre
e-mail: [EMAIL PROTECTED]
---
...thinking is not consciousness -
 it requires hard work... - Rush Limbaugh
---





Re: [opendx-users] Re: hints symmetrical calculations

2000-06-22 Thread Thomas A. Gardiner

Yes!  Nancy, great!  Now I think I can describe my question simply.  Take
the image generate by the script below...  I'm looking at it right now.
See all of the connections and points which are necessary to describe the
circles?  What I want to know is if the connections, i.e. the linear
paths between points can be warped into curves.  If so, then each of the 
circles in this square doughnut could be described by 1 circular
connection.  Since my data is a constant inside of this doughnut, I
would prefer not having to make many, many copies of it in order to
display it in full rotated glory.  

I'm afraid that the answer is no.  From what I can tell, points map to
points in coordinate transformations, but lines remain straight
independent of the coordinate transformation.  It seems to be a basic
assumption of the data model.

Please prove me wrong and show me that it can be done!  :-)

I tried to do something silly and do the same mark, compute, unmark this
time operating on connections, but as I expected it did not work since (I
think this is the reason) connections are not a primative object in dx,
but instead are product arrays of path array objects (right?).  Can a path
array object be warped so to speak?

Tom


On Thu, 22 Jun 2000, nancy collins wrote:

as chris and ned observed, you may indeed want to do your
analysis before bringing your data into dx, and we probably
ought to take the rest of this discussion off-line,  but as
a parting shot, just for grins here's a square bagel picture.
(cut the following text and run it with 'dx -script').  it probably
doesn't have the correct axis of symmetry, but you get the idea.

nancy


grid = Construct([0,5], [0.35,1], [20,4]);

pos = Mark(grid, positions);
comp = Compute([$0.y * cos($0.x), $0.y * sin($0.x)], pos);
warp = Unmark(comp);

ser = CollectSeries(warp, 0.0, warp, 4.0);
threeD = Stack(ser);

lines = ShowConnections(threeD);

cam = AutoCamera(lines, off-right);
image = Render(lines, cam);

Display(image);