So I’m working on an algorithm to come up with a wiring diagram for the dodecahedral core. It’s more complicated than just wiring up the 12 coils in series. This is would only magnetically protect 12 of the 30 connecting joints. Ideally each join would get one pass of superconducting cable. A picture to meditate on:
Lets start by making some methods to traverse the net. Currently I have this functionality:
Geometry::Dodecahedron.faces.first
=> [Vector[1, 1, 1], Vector[1, 1, -1], Vector[0.618033988749895, 1.61803398874989, 0], Vector[1.61803398874989, 0, 0.618033988749895], Vector[1.61803398874989, 0, -0.618033988749895]]
So I can easily iterate through the the faces, and I get the vertices of that face unordered. The first challenge is to order these collections of vertices so that you traverse the face clockwise simply by iterating the collection.
are you trying to find the hamiltonian path of a dodecahedron?
Certainly a step in the right direction. Although we want to visit each _edge_ only once, not each vertex.
http://en.wikipedia.org/wiki/Hamiltonian_path
We want the Eulerian_path, which touches each edge exactly once:
http://en.wikipedia.org/wiki/Eulerian_path
However!
According to this page
http://mathworld.wolfram.com/DodecahedralGraph.html
The dodecahedron does not have a Eulerian Path!
As a practical matter, this means one or more of the joints (edges) will have more than one transition.