Sign in to follow this  
Makaan

regular tetrahedron,icosahedron and octahedron

Recommended Posts

Hello , I have to create a regular shape(tetrahedron,octahedron or icosahedron) around point (0,0,0) using only algorithms and math. For the tetrahedron i might figure it out by myself but for the rest (octahedron and icosahedron)there is lots of information on the internet and I'm not really sure where to look first or what to look for. Some algorithms,papers or code would be appreciated :), thanks , Raxvan.

Share this post


Link to post
Share on other sites
The octahedron is trivial: Its vertices are (1,0,0), (-1,0,0), (0,1,0), (0,-1,0), (0,0,1) and (0,0,-1).

The dodecahedron and the icosahedron are a bit trickier. One thing to notice is that the centers of the faces of an icosahedron are the vertices of a dodecahedron and conversely the centers of the faces of a dodecahedron are the vertices of an icosahedron.

Share this post


Link to post
Share on other sites
This post will be about simplices, like tetrahedra. I'll leave icosahedra for another post.

My favorite way to generate regular n-simplices (a tetrahedron is a 3-simplex) is to "move up one dimension and then project back down."

Example: How to generate vertices of an equilateral triangle in 2d? Well, it's easy in 3d: They are,
e1 = (1,0,0)
e2 = (0,1,0)
e3 = (0,0,1)
in the plane with normal (1,1,1). So all you need to do is compute the components of e1, e2, and e3 along elements of a basis orthogonal to (1,1,1).

How to generate such a basis? Two ideas. The first is basically Gram-Schmidt on e1,e2. The second, which is even cooler, is to observe that the basis for the discrete cosine transform is orthonormal and contains (1,1,...,1), so you can simply use these.

The idea for a 3-simplex (tetrahedron) is the same. Compute vertices in R^4:
e1 = (1,0,0,0)
e2 = (0,1,0,0)
e3 = (0,0,1,0)
e4 = (0,0,0,1)
and then project onto the plane in R^4 with normal (1,1,1,1) to move back down to R^3.

Share this post


Link to post
Share on other sites
For icosahedra... An icosahedron is generated by a system of 6 equiangular lines. Each line intersects the unit sphere at 2 points. This gives a total of 12 points, which are the vertices of the icosahedron. So finding the vertices of an icosahedron is the same as finding a system of 6 equiangular lines.

What you can do here is find 6 equiangular lines in R^6 -- the coordinate axes -- and then project them down to R^3 in a good way. Equivalently, find a way to project e1,...,e6 down to R^3 in a "good way."

What does "good way" mean?

I don't completely remember. :-\ Wikipedia has a little explanation here which is pretty cool, but I need more geometric intuition for it...

[Edited by - Emergent on September 9, 2009 5:10:37 PM]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this