Hosted by The Math Forum

# Cubic Billiards

MacPOW Home || Math Forum POWs || Search MacPOW

## Solution

A solution to 1159 was found by: Joseph DeVincentis, Franz Pichler, Mike Elgersma, Jim Guilford, and John Guilford; one incorrect solution was received.

Pilcher observed, using standard reflection ideas, that any point on a face of a cube (but not on the face diagonal) can initiate a path as sought. Simply make sure the direction taken is parallel to one of the main diagonals of the cube. His work applies just as well to a rectangular parallellipiped.

An interesting related question was raised by Elgersma: Do such paths exist in the other four regular solids? This turns out to have been investigated and solved, though only relatively recently. Elgersma found such in the regular solids, and then found several references to the problem, which was solved by Matthew Hudelson in 1997.

Pilcher made a nice Mathematica demo showing the paths in the cubic case:

``` Manipulate[cub={{0,0,0},{a,b,c}};
path1={{x,y,0},{a,b-(b x)/a + y,c-(c x)/a},
{a-x+(a y)/b,b,c-(c y)/b},{a-x,b-y,c},
{0,(b x)/a-y,(c x)/a},{x-(a y)/b,0,(c y)/b},{x,y,0}};
path2={{x,y,0},{a+x-(a y)/b,b,c-(c y)/b},
{a,b+(b x)/a-y,c-(c x)/a},{a-x,b-y,c},
{-x+(a y)/b,0,(c y)/b},{0,-((b x)/a)+y,(c x)/a},
{x,y,0}};If[a<x,x=a];If[b<y,y=b];
If[y <= (b x)/a,path=path1,path=path2];
Graphics3D[{{Red,Tube[path,0.06]},{Purple,PointSize[0.04],Point[path]},
{Red,PointSize[.03],Point[path[[1]]]},{Opacity[.4],Cuboid[cub]}},
ImageSize -> {600,400},Boxed -> False, Axes -> True, AxesLabel -> {"x","y","z"}],
{{a,5,"  cuboid[x] "},1,7,Appearance→"Labeled"},
{{b,4,"  cuboid[y] "},1,6,Appearance→"Labeled"},
{{c,3,"  cuboid[z] "},1,5,Appearance→"Labeled"},
Button["reset cuboid",a=5;b=4;c=3],Delimiter,
{{x,3.14,"  x[Start] "},0,a,Appearance→"Labeled"},
{{y,1,"  y[Start] "},0,b,Appearance→"Labeled"}, TrackedSymbols→Manipulate]
```

Elgersma sent coordinates for paths in the regular solids. The normalization used is that the distance from the origin to each vertex is always equal to 1. The polyhedral vertices are correct to three digits. The closed path coordinates are good to a little better than 1 percent, as can be seen by comparing the error between the first point and last point, which should have been exactly equal.

#### Cube

##### Vertices
x = [-0.5774 0.5774 0.5774 -0.5774 -0.5774 0.5774 0.5774 -0.5774]
y = [-0.5774 -0.5774 0.5774 0.5774 -0.5774 -0.5774 0.5774 0.5774]
z = [-0.5774 -0.5774 -0.5774 -0.5774 0.5774 0.5774 0.5774 0.5774]
[1 2 3 4]
[1 2 6 5]
[2 3 7 6]
[3 4 8 7]
[4 1 5 8]
[5 6 7 8]

##### Ordered list of points along closed internal path that touches each face exactly once
path x = [-0.279 -0.136 0.577 0.279 0.136 -0.577 -0.279]
path y = [0.577 0.435 -0.279 -0.577 -0.434 0.279 0.577]
path z = [0.435 0.577 -0.136 -0.434 -0.577 0.135 0.434]

#### Dodecahedron

##### Vertices
x = [0.5774 0.3568 -0.9342 0.9342 -0.5774 0 -0.9342 0.5774 -0.5774 -0.5774 0.5774 0.3568 -0.5774 0 0 -0.3568 0.9342 -0.3568 0.5774 0]
y = [0.5774 0 -0.3568 0.3568 0.5774 -0.9342 0.3568 -0.5774 0.5774 -0.5774 -0.5774 0 -0.5774 -0.9342 0.9342 0 -0.3568 0 0.5774 0.9342]
z = [0.5774 0.9342 0 0 -0.5774 -0.3568 0 0.5774 0.5774 0.5774 -0.5774 -0.9342 -0.5774 0.3568 -0.3568 0.9342 0 -0.9342 -0.5774 0.3568]

[1 2 16 9 20]
[2 16 10 14 8]
[16 9 7 3 10]
[7 9 20 15 5]
[5 7 3 13 18]
[3 13 6 14 10]
[6 13 18 12 11]
[6 11 17 8 14]
[11 12 19 4 17]
[1 2 8 17 4]
[1 4 19 15 20]
[12 18 5 15 19]

##### Ordered list of points along closed internal path that touches each face exactly once
path x = [0.163 0.163 -0.693 0.533 -0.299 -0.3 0.541 -0.685 0.162 0.162 0.162 0.161 0.161]
path y = [0.641 -0.834 -0.406 0.333 0.749 -0.749 -0.329 0.411 0.834 -0.657 -0.756 0.741 0.64]
path z = [-0.538 0.0253 0.391 -0.649 -0.294 0.278 0.637 -0.403 -0.0415 0.528 -0.467 0.476 -0.539]

#### Icosahedron

##### Vertices

x = [0 0 0 0 -0.5257 -0.5257 0.5257 0.5257 -0.8507 0.8507 0.8507 -0.8507]
y = [-0.5257 -0.5257 0.5257 0.5257 -0.8507 0.8507 0.8507 -0.8507 0 0 0 0]
z = [-0.8507 0.8507 0.8507 -0.8507 0 0 0 0 -0.5257 -0.5257 0.5257 0.5257]

[1 4 9]
[1 5 9]
[1 8 5]
[1 8 10]
[1 10 4]
[12 2 5]
[12 2 3]
[12 3 6]
[12 6 9]
[12 9 5]
[11 7 10]
[11 10 8]
[11 8 2]
[11 2 3]
[11 3 7]
[2 5 8]
[10 4 7]
[3 6 7]
[6 7 4]
[6 4 9]

##### Ordered list of points along closed internal path that touches each face exactly once

path x = [0.209 0.0767 -0.146 0.785 0.298 -0.173 0.18 -0.706 -0.707 0.211 -0.139 0.34 0.804 -0.173 0.0468 0.188 -0.597 0.0622 0.0577 -0.611 0.208]
path y = [0.423 -0.613 0.546 0.171 -0.82 -0.312 0.483 -0.125 0.154 -0.478 0.305 0.82 -0.122 -0.515 0.625 -0.472 -0.664 -0.313 0.273 0.628 0.425]
path z = [-0.744 -0.623 0.684 0.396 0.0796 -0.785 0.713 0.546 -0.515 -0.687 0.798 -0.0812 -0.384 -0.689 0.591 0.716 -0.0859 -0.827 0.829 0.0851 -0.744]

#### Octahedron

##### Vertices

x = [1 0 -1 0 0 0]
y = [0 1 0 -1 0 0]
z = [0 0 0 0 -1 1]

[1 2 5]
[2 3 5]
[3 4 5]
[4 1 5]
[1 2 6]
[2 3 6]
[3 4 6]
[4 1 6]

##### Ordered list of points along closed internal path that touches each face exactly once

path x = [0.506 -0.0974 0.0142 -0.528 0.0683 -0.207 0.127 -0.0891 0.508]
path y = [0.354 0.181 -0.264 -0.419 0.705 0.626 -0.707 -0.769 0.354]
path z = [-0.141 0.721 0.721 -0.0532 0.227 -0.167 -0.166 0.142 -0.138]

#### Tetrahedron

##### Vertices

x = [0.8165 -0.8165 0 0]
y = [0 0 0.8165 -0.8165]
z = [-0.5774 -0.5774 0.5774 0.5774]

[1 2 3]
[1 2 4]
[2 3 4]
[1 3 4]

##### Ordered list of points along closed internal path that touches each face exactly once

path x = [0.0623 -0.0894 -0.247 0.242 0.0639]
path y = [-0.234 0.24 0.0836 -0.0714 -0.234]
path z = [-0.246 -0.238 0.228 0.235 -0.246]