Mondrian Cube

Mondrian Cube
Loading the math board and drawing, please wait…
2020-02-17 01:24
This example demonstrates drawing equilateral triangles, right triangles, and quadrilaterals on a cube. By randomly generating and transforming points, users can observe the distribution of these geometric shapes on the cube. Commands used include point, intersection, polygon, sequence, random, rotation, midpoint, line, etc. Suitable for middle school and above students to learn solid geometry and geometric construction.

GeoGebra Commands & Parameters

  1. Point(yAxis) → A
  2. Point(xAxis) → C
  3. Intersect(xAxis, yAxis) → D
  4. Polygon(A, B, C, D) → poly1, a, b, c, d
  5. Sequence((Random[1, 9], Random[1, 9]), i, 1, n) → listeP
  6. Sequence(Segment[(Element[listex, i], 0), (Element[listex, i], 10)], i, 1, n - 1) → liste1
  7. Sequence(Segment[(0, Element[listey, i]), (10, Element[listey, i])], i, 2, n) → liste2
  8. Segment(Element[listeP, n], (Element[listex, n], If[Random[1, 2] ≟ 1, 0, 10])) → e
  9. Segment(Element[listeP, 1], (If[Random[1, 2] ≟ 1, 0, 10], Element[listey, 1])) → f
  10. Sort(Insert[{0, 10}, Take[listex, 1, n - 1], 1]) → listeabs
  11. Sort(Insert[{0, 10}, Take[listey, 2, n], 1]) → listeord
  12. Random(1, n) → i1
  13. Random(1, n) → j1
  14. Polygon({(Element[listeabs, i1], Element[listeord, j1]), (Element[listeabs, i1 + 1], Element[listeord, j1]), (Element[listeabs, i1 + 1], Element[listeord, j1 + 1]), (Element[listeabs, i1], Element[listeord, j1 + 1])}) → rect1
  15. RandomElement(listeC) → coul1, "Rouge"
  16. Random(1, n) → i2
  17. Random(1, n) → j2
  18. Polygon({(Element[listeabs, i2], Element[listeord, j2]), (Element[listeabs, i2 + 1], Element[listeord, j2]), (Element[listeabs, i2 + 1], Element[listeord, j2 + 1]), (Element[listeabs, i2], Element[listeord, j2 + 1])}) → rect2
  19. RandomElement(listeC) → coul2, "Jaune"
  20. Random(1, n) → i3
  21. Random(1, n) → j3
  22. Polygon({(Element[listeabs, i3], Element[listeord, j3]), (Element[listeabs, i3 + 1], Element[listeord, j3]), (Element[listeabs, i3 + 1], Element[listeord, j3 + 1]), (Element[listeabs, i3], Element[listeord, j3 + 1])}) → rect3
  23. RandomElement(listeC) → coul3, "Jaune"
  24. Rotate(A, 90°, xAxis) → A'
  25. Rotate(B, 90°, xAxis) → B'
  26. Rotate(C, 90°, xAxis) → C'
  27. Rotate(D, 90°, xAxis) → D'
  28. Polygon(A', B', C', D') → poly1', a', b', c', d'
  29. Rotate(rect1, 90°, xAxis) → rect1'
  30. Rotate(rect2, 90°, xAxis) → rect2'
  31. Rotate(rect3, 90°, xAxis) → rect3'
  32. Rotate(liste1, 90°, xAxis) → liste1'
  33. Rotate(liste2, 90°, xAxis) → liste2'
  34. Midpoint(C, A) → E
  35. Line(E, zAxis) → g
  36. Sequence(Rotate[poly1', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l1
  37. Sequence(Rotate[rect1', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l2
  38. Sequence(Rotate[rect2', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l3
  39. Sequence(Rotate[rect3', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l4
  40. Sequence(Rotate[liste1', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l5
  41. Sequence(Rotate[liste2', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l6
  42. Rotate(seg, 90°, xAxis) → seg'
  43. Sequence(Rotate[seg', i, g], i, 0, (2 * pi), (2 * pi / 4)) → l7
  44. Point(Circle[C, Distance[D', C], Segment[D', C]]) → F
  45. Cube(D', C, F) → h, G, faceFGKJ, faceHIJK, arêteD'G, arêteCD', arêteCF, arêteFG, arêteD'H, arêteGK, arêteHK, arêteHI, H, arêteCI, arêteIJ, arêteFJ, arêteJK, I, J, K, faceCD'GF, faceD'GKH, faceCD'HI, faceCFJI
  46. Midpoint(A, C) → L
  47. Midpoint(J, H) → M
  48. Midpoint(M, L) → N
  49. Line(H, I) → i
  50. Rotate(rect1', 90°, i) → rect1''
  51. Rotate(rect2', 90°, i) → rect2''
  52. Rotate(rect3', 90°, i) → rect3''
  53. Rotate(liste1', 90°, i) → liste1''
  54. Rotate(seg', 90°, i) → seg''
  55. Rotate(liste2', 90°, i) → liste2''