Skip to main content
deleted 4 characters in body
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110

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[θ_: Realx[θ_Real, φ_: 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 

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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 

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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 

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

added 1 character in body
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110

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

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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 

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

deleted 122 characters in body
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110

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 direction 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}{x,y,z} direction in Euclidean coordinates as a function of spherical angles [Theta]θ and [Phi]φ are of course:

x[\[Theta]_x[θ_: Real, \[Phi]_φ_: Real] := {Sin[\[Theta]]Sin[θ] Cos[\[Phi]]Cos[φ],   Sin[\[Theta]]Sin[θ] Sin[\[Phi]]Sin[φ],   Cos[\[Theta]]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 [Theta]θ and [Phi]φ). For each such direction, the distance to the surface is 1/Sin[[Psi]]Sin[ψ], where [Psi]ψ is the scalar angle between the candidate direction and its nearest face direction:

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

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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 direction 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 [Theta] and [Phi] are of course:

x[\[Theta]_: Real, \[Phi]_: Real] := {Sin[\[Theta]] Cos[\[Phi]],   Sin[\[Theta]] Sin[\[Phi]],   Cos[\[Theta]]} 

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 [Theta] and [Phi]). For each such direction, the distance to the surface is 1/Sin[[Psi]], where [Psi] is the scalar angle between the candidate direction and its nearest face direction:

 SphericalPlot3D[ 1/Sin[x[\[Theta], \[Phi]].Nearest[FaceCenters, x[\[Theta], \[Phi]]][[1]]], {\[Theta], 0, \[Pi]}, {\[Phi], 0, 2 \[Pi]}, PlotPoints -> 100] // Quiet 

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

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

Cube fig

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

Tetrahedron fig

If you repeat for an Octahedron, you get this:

Octahedron fig

If you repeat for a Dodecahedron, you get this:

Dodecahdrond fig

added 120 characters in body
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110
Loading
added 26 characters in body
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110
Loading
Source Link
David G. Stork
  • 43k
  • 3
  • 40
  • 110
Loading