Jump to content
  • Advertisement
Sign in to follow this  
Makaan

regular tetrahedron,icosahedron and octahedron

This topic is 3263 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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
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.

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
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!