In this days I'm reading about polyhedra because of a lesson that I'm preparing for my students. Very interesting is the icosaedro. It is composed by 20 faces and 30 vertices. Working on this topics is interesting because by them is possible to understand more about mesh representation.
The Icosaedro has all triangular faces and its volume can be inscribed in a cube. This consideration is important if you want to code the algorithm of construction of this regular polyhedron. My goal is create a gh code useful to draw an icosaedro starting from its edge. The geometrical procedure is known: you can find a fantastic explanation in the article of my friend Leonardo Baglioni: "I poliedri regolari e semiregolari con un approfondimento sulle cupole geodetiche." In the book "Geometria Descrittiva" of Riccardo Migliari.
He writes that is it possible to find the edge of the icosaedro, starting from the edge of the circumscribed cube using this equation which comes from a geometrical description. If I can do It, also is it possible the reverse: finding the edge of the circumscribed cube starting from a line that will be the edge of the icosaedro.
But now I have just a cube not an icosaedro! If I look at an icosaedro inside a cube I notice that the edges which belong to the faces of the cube are rotated of 90 degrees, only the opposite faces have edges in the same direction. The next part of the gh code is quite interesting because I solved the problem of rotated edges on different six faces with the knowledge of parametric space. I collected a list of six rotated edges on the same faces, I caught the uv parameters of end points for the face which I choose first and I used them to create the edges of icosaedro for all the six face of the cube. Now I have just to connect points with new lines.
A matching of mesh e nurbs helped me to create the resulting regular volume.