
Hexagons inside a cube
By:
Matthen on
Nov 27th, 2011 | syntax:
None | size: 0.88 KB | hits: 144 | expires: Never
p = Permutations[{0, 1, -1, 0, 1, -1, 0, 1, -1}, {3}];
hexes = Flatten[ Table[{(-1)^i, (-1)^j, (-1)^k},
{i, 2}, {j, 2}, {k, 2}
], 2][[;; 4]];
hex[n_] :=
SortBy[ Select[p, (n.# == 0) && Norm[#] > 0 &], angle[n, #] &];
Perp[n_] :=
Perp[n] =
First[{x, y, z} /.
FindInstance[{x, y, z}.n == 0 && (Norm[{x, y, z}]) > 0, {x, y,
z}, Reals]];
angle[n_, v_] :=
Mod[VectorAngle[Perp[n], v] If[(Perp[n]\[Cross]v).n > 0, 1, -1],
2 Pi];
anim[\[Theta]_] := Graphics3D[{
Opacity[0.5], Red, Cuboid[{-1, -1, -1}, {1, 1, 1}], Opacity[1],
White,
,
Polygon[
hex[#]] & /@ (hexes[[;;
Round[4 TriangleWave[\[Theta]/(4 Pi)]]]])
}, PlotRange -> 1.1, Boxed -> False,
ViewPoint -> {5 Sin[\[Theta]/4], 5 Cos[\[Theta]/4], 2},
ViewAngle -> Pi/8];
Manipulate[
anim[2 Pi (1 + ((\[Theta] - Pi)/(Pi))^3)/2], {\[Theta], 0, 2 Pi}]