Regular Polyhedra coordinate points generation

Is it possible to get all points on a Polyhedron surface using two surface parameters, say

$\phi,\theta$ spherical co-ordinates?

Just like in ParametricPlot3D, can we start with PolyhedronData["Tetrahedron"] to obtain spatial point positions?. The tip of position vector should cross edges automatically during $\phi,\theta$ sweep.

• You can always make this kind of tricks – Dr. belisarius Dec 29 '14 at 19:22
• @belisarius: fine,but want to append or prepend available Polyhedra. – Narasimham Dec 29 '14 at 19:59
• This is a nice start. – Dr. belisarius Dec 29 '14 at 20:04
• Stick a small sphere around the barycenter. Now parametrize by the spherical angles, using intersection of ray through spherical point (theta,phi) with polyhedron. – Daniel Lichtblau Dec 29 '14 at 23:57
• Clear enough, we need to have direct coordinates as function of ($\theta,\phi, n$). – Narasimham Dec 30 '14 at 7:58

Exploit the fact that the vertices of the dual to a Platonic solid correspond to the centers of the faces of the solid itself. For instance, the dual to a cube is a regular octahedron, and the six vertices of this octahedron are in the directions of the centers of the faces of its dual cube.

Find the normalized directions of the face centers of the cube (for instance) this way:

FaceCenters = Normalize /@ PolyhedronData[PolyhedronData["Cube", "Dual"], "Faces"][[1]];


The {x,y,z} direction in Euclidean coordinates as a function of spherical angles θ and φ are of course:

x[θ_Real, φ_Real] := {Sin[θ] Cos[φ],
Sin[θ] Sin[φ],
Cos[θ]}


Now sweep through all spherical angles, and for each corresponding direction find the nearest face center direction (i.e., the one with the smallest angle to the direction defined by θ and φ). For each such direction, the distance to the surface is 1/Sin[ψ], where ψ is the scalar angle between the candidate direction and its nearest face direction:

    SphericalPlot3D[
1/Sin[x[θ, φ].Nearest[FaceCenters, x[θ, φ]][[1]]],
{θ, 0, π}, {φ, 0, 2 π},
PlotPoints -> 100] // Quiet


If you repeat with a Tetrahedron, for instance, you get this:

If you repeat for an Octahedron, you get this:

If you repeat for a Dodecahedron, you get this:

• Wow... I really thought @Narasimhan would have accepted this answer! What more can he possibly want?! – David G. Stork Jan 6 '15 at 0:58
• That was great. My apologies for the inordinate delay earlier – Narasimham Feb 10 '18 at 5:17
• Wow... two months late! Better late than never! – David G. Stork Feb 10 '18 at 6:20