regular tetrahedron,icosahedron and octahedron

Started by
4 comments, last by Makaan 14 years, 7 months ago
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.
Advertisement
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.
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.
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]
Platonic Solids
Quote:Original post by Dave Eberly
Platonic Solids


Thanks , i will use this because is it simple. Emergent's idea was interesting , but harder to understand.

This topic is closed to new replies.

Advertisement