Re: [opendx-users] Re: hints symmetrical calculations
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
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
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
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
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
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);