fontenot@comet.rice.edu (Dwayne Jacques Fontenot) (04/16/91)
Hello, I have been playing with recursive triangular sphere tessellations. Starting with an octahedron works beautifully, but since each triangle is split into four triangles at each iteration, the progression of numpolys looks like this: 8 32 128 512 2048 8192 ... I want more flexibility in the number of polygons per sphere. So, I tried starting with a tetrahedron, so that I could get: 4 16 64 256 1024 4096 ... This, plus the above would give me any power of 2, which is probably enough flexibility... But, the tetrahedral tessellation is giving me some strange results. My question is this; is there a fundamental problem with starting with a tetrahedron? I cannot think of one... any replies will be greatly appreciated. Thank you for your time, Dwayne Fontenot (fontenot@comet.rice.edu) Rice Advanced Visualization Lab (RAVL)
leech@homer.cs.unc.edu (Jonathan Leech) (04/16/91)
In article <1991Apr15.171109.2625@rice.edu>, fontenot@comet.rice.edu (Dwayne Jacques Fontenot) writes: |> I have been playing with recursive triangular sphere tessellations. Starting |> with an octahedron works beautifully... |> But, the tetrahedral tessellation is giving me some strange results. |> My question is this; is there a fundamental problem with starting with a |> tetrahedron? I cannot think of one... any replies will be greatly appreciated. I think it's just a bit odd-looking for the first few levels due to the odd symmetry of a tetrahedron compared to an octahedron, which has 3 perpendicular symmetry planes. It looks fine by the 3rd or 4th subdivision level. While checking this out, I modified my sphereoid generator (the one mentioned in the FAQ) to start with either tetrahedrons or octahedrons (somebody was going to contribute an icosahedron but hasn't yet). Interested parties can retrieve it by anonymous ftp from ftp.cs.unc.edu:~pub/sphere.c -- Jon Leech (leech@cs.unc.edu) __@/ "I met a wonderful new man. He's fictional, but you can't have everything." - Cecelia, _The Purple Rose of Cairo_
jbm@eos.arc.nasa.gov (Jeffrey Mulligan) (04/17/91)
leech@homer.cs.unc.edu (Jonathan Leech) writes: >In article <1991Apr15.171109.2625@rice.edu>, fontenot@comet.rice.edu (Dwayne Jacques Fontenot) writes: >|> I have been playing with recursive triangular sphere tessellations. Starting >|> with an octahedron works beautifully... >|> But, the tetrahedral tessellation is giving me some strange results. >|> My question is this; is there a fundamental problem with starting with a >|> tetrahedron? I cannot think of one... any replies will be greatly appreciated. > I think it's just a bit odd-looking for the first few levels due >to the odd symmetry of a tetrahedron compared to an octahedron, which >has 3 perpendicular symmetry planes. It looks fine by the 3rd or 4th >subdivision level. All of the added vertices will have a valence (degree) of 6, i.e., 6 edges will meet at the vertex. The original vertices of the polygon will retain their degree, which for the octahedron is 4, and for the tetrahedron is 3. After a large number of recursive subdivisions, the triangular facets meeting at the original vertices of the octahedron will be right equilateral triangles, while those meeting at the vertices of the original tetrahedron will be obtuse equilateral triangles (angle =120 deg). The most uniform tesselation is obtained from the icosahedron, the vertices of which all have degree 5. In the limit, the facets at these vertices will be triangles having angles 72, 54 and 54 degrees (want 60 60 60). -- Jeff Mulligan (jbm@eos.arc.nasa.gov) NASA/Ames Research Ctr., Mail Stop 262-2, Moffett Field CA, 94035 (415) 604-3745
robert@texas.asd.sgi.com (Robert Skinner) (04/17/91)
In article <1991Apr15.171109.2625@rice.edu>, fontenot@comet.rice.edu (Dwayne Jacques Fontenot) writes: |> |> Hello, |> |> I have been playing with recursive triangular sphere tessellations. Starting |> with an octahedron works beautifully, but since each triangle is split into |> four triangles at each iteration, the progression of numpolys looks like this: |> |> 8 32 128 512 2048 8192 ... |> |> I want more flexibility in the number of polygons per sphere. So, I tried |> starting with a tetrahedron, so that I could get: |> |> 4 16 64 256 1024 4096 ... |> |> This, plus the above would give me any power of 2, which is probably enough |> flexibility... |> recursive triangular subdivision is elegant and simple to code, but its not very flexible, as you point out. For an M-sided polyhedra, you get M*2^N polygons, where N is the level of subdivision. A better choice is to do non-recursive subdivision of the triangle by some integer factor K. You will get K*K smaller triangles from each original triangle, so the progression of numpolys for an octahedron would be 8 32 72 128 200 288 ... and for a tetrahedron would be 4 16 36 64 100 144 ... Also, non-recursive subdivision should be (at least marginally) faster. You have a lot fewer function invocations, and doing the subdivision incrementally might help too. -- Robert Skinner robert@sgi.com Is that a pistol in your pocket, or are you just glad to see me? - Mae West
rodent@netcom.COM (Ben Discoe) (04/18/91)
leech@homer.cs.unc.edu (Jonathan Leech) writes: > [Concerning tesselating a tetrahedron] > I think it's just a bit odd-looking for the first few levels due >to the odd symmetry of a tetrahedron compared to an octahedron, which >has 3 perpendicular symmetry planes. It looks fine by the 3rd or 4th >subdivision level. > While checking this out, I modified my sphereoid generator (the >one mentioned in the FAQ) to start with either tetrahedrons or >octahedrons (somebody was going to contribute an icosahedron but >hasn't yet). Interested parties can retrieve it by anonymous ftp from >ftp.cs.unc.edu:~pub/sphere.c > > Jon Leech (leech@cs.unc.edu) __@/ My small 3d editor has a "frequency" feature which will raise any collection of triangular faces to a given frequency (this is Buckminster Fuller-speak for tesselating all faces to an equivalent degree). In fact, this is the only really neat feature of the editor (it's written for the Amiga, in case anyone wants a copy). Allowing "square" faces to also be tesselated in the same operation would be an improvement, but I was unable to establish an analogous geometric operation for faces with more than 4 sides (although it's fun trying). You need to tesselate 4-sided faces in order to do the vector equilibrium ("cuboctahedron"), a worthy polyhedron. It's fun and easy to make your own geodesic spheres: A. pick your favorite regular or irregular polyhedron B. raise it to the desired frequency (using above mentioned code) C. normalize points to equidistant from their center (trivial) Presto! If anyone wants the Amiga code, ask me. Now, I have two favors to ask: 1. Anyone have any keen ideas on how to tesselate n-gons with n>4? 2. Anyone know where I can find C code to a 3D convex hull algorithm? I got _Computational Geometry: an introduction_ but the algorithm is abstract and gnarly. This would enable the user to simply define a few 3D points, do a convex hull wrap, then go to step (A.) above. To be precise, the above method is only one way (and not the "true" way) to generate a geodesic sphere. The "true" method involves dividing the spherical angles, but the method mentioned isn't too far off. ---------- Ben Discoe, radical ecologist, computer scientist, loony at large :)