Snub Operation from Cube to Octahedron, Rhombicuboctahedron, and Snub Cube

Snub Operation from Cube to Octahedron, Rhombicuboctahedron, and Snub Cube
Loading the math board and drawing, please wait…
2020-03-18 01:00
This example demonstrates the snub operation transforming a cube into an octahedron, rhombicuboctahedron, and snub cube. Key mathematical concepts include polyhedral transformations in solid geometry. Using GeoGebra commands such as Zip, Length, Sequence, and Join, the process of generating these polyhedra is visually illustrated. Suitable for high school and university students and educators.

GeoGebra Commands & Parameters

  1. Zip(Vector[(zoom * (Element[a, 1], Element[a, 2], Element[a, 3]))], a, m_octahedron) → V6zoom
  2. Length(V6zoom(1)) → r
  3. Zip(Vector[(zoom * (Element[a, 1], Element[a, 2], Element[a, 3]))], a, m_cube) → V8zoom
  4. Sequence(Sequence[V8zoom(faces(i, k)), k, 1, Length[faces(1)]], i, 1, Length[faces]) → V8cube
  5. Zip(Polygon[a], a, V8cube) → poly_cube0
  6. Zip(Sum[a] / 4, a, V8cube) → Cmi
  7. Zip(Rotate[a, β, Line[O, b]], a, V8cube, b, Cmi) → V8'
  8. Zip(Dilate[a, q, b] + ((c - b) * t), a, V8', b, Cmi, Vector[c], V6zoom) → V4
  9. Join(V4) → lP0
  10. Textfield(t) → InputBox1
  11. Zip(Polygon[a], a, V4) → poly4
  12. Length(lP0) → läA0
  13. Length(lP0(1)) → R_A0
  14. Sphere((0, 0, 0), R_A0) → a
  15. Length(V6zoom(1)) → rA6
  16. Zip(Polygon[a], a, V4) → poly4_cube'
  17. Sequence(Polygon[Sequence[lP0(m_3(f, k)), k, 1, Length[m_3(1)]]], f, 1, Length[m_3]) → poly3
  18. Sequence(Polygon[Sequence[lP0(m3_4(f, k)), k, 1, Length[m3_4(1)]]], f, 1, Length[m3_4]) → poly_{3}'
  19. Sequence(Polygon[Sequence[lP0(m_4(f, k)), k, 1, Length[m_4(1)]]], f, 1, Length[m_4]) → poly_{4}
  20. Length(Unique[lP0]) → lä
  21. Length(lP0) → n
  22. If(j, "\fgcolor{orange}{\; ∙---}", "") → txt1
  23. If(j, "\fgcolor{#318CE7}{\; ∙---}", "") → txt2
  24. If(j, "\fgcolor{magenta}{\; ∙---}", "") → txt3
  25. If(j, "\fgcolor{green}{\; ∙---}", "") → txt2a
  26. Sequence(Segment[lP0(m_3(2, i)), lP0(m_3(2, If[i ≟ 3, 0, i] + 1))], i, 1, 3) → seg3
  27. Sequence(Segment[lP0(m_4(2, i)), lP0(m_4(2, If[i ≟ 4, 0, i] + 1))], i, 1, 4) → seg4'
  28. Sequence(Segment[V4(1, i), V4(1, If[i ≟ 4, 1, i + 1])], i, 1, 4) → seg4
  29. Sequence(Segment[lP0(m3_4(4, i)), lP0(m3_4(4, If[i ≟ 3, 0, i] + 1))], i, 1, 3) → seg3'
  30. TableText(Append["segments", 1…4], Append["\fgcolor{#FB607F}{3-gon}" + txt1, seg3], Append["\fgcolor{#B2BEB5}{3-gon'}'" + txt2, seg3'], Append["\fgcolor{Turquoise}{4-gon}" + txt3, seg4], "v") → text2b
  31. Textfield(dα) → InputBox2
  32. Textfield(dt) → InputBox3
  33. TableText(Append["segments", 1…4], Append["\fgcolor{#FB607F}{3-gon}" + txt1, seg3], Append["\fgcolor{#C19A6B}{4'-gon}" + txt2a, seg4], Append["\fgcolor{Turquoise}{4-gon}" + txt3, seg4'], "v") → text2a