3D Matrix Transformations: Linear Algebra Visualization

3D Matrix Transformations: Linear Algebra Visualization
Loading the math board and drawing, please wait…
2016-11-03 16:29
This example demonstrates 3D matrix transformations applied to a cube. It covers core concepts in linear algebra, including matrix multiplication, vector spaces, and geometric transformations in three dimensions. Construction utilizes GeoGebra commands such as Cube, ApplyMatrix, Vector, Point, Segment, and Sequence to visualize how linear operators alter spatial coordinates. Ideal for high school or university students studying linear algebra and solid geometry.

GeoGebra Commands & Parameters

  1. SelectedIndex(Examples) → index
  2. Element(MT, index) → T_0
  3. Vector((0, 0, 0), (x_0, y_0, z_0)) → u
  4. Vector((0, 0, 0), (x_1, y_1, z_1)) → v
  5. Vector((0, 0, 0), (x_2, y_2, z_2)) → w
  6. Circle(A, 1, xOyPlane) → c
  7. Line(A, xAxis) → f
  8. Intersect(f, c, 1) → B
  9. Segment(A, B) → g
  10. Point(Circle[B, Distance[A, B], Segment[A, B]]) → C
  11. Cube(A, B, C) → Cube, D, faceCDHG, faceEFGH, edgeAD, edgeAB, edgeBC, edgeCD, edgeAE, edgeDH, edgeEH, edgeEF, E, edgeBF, edgeFG, edgeCG, edgeGH, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF
  12. ApplyMatrix(T_a, A) → A'
  13. ApplyMatrix(T_a, B) → B'
  14. ApplyMatrix(T_a, C) → C'
  15. ApplyMatrix(T_a, D) → D'
  16. ApplyMatrix(T_a, E) → E'
  17. ApplyMatrix(T_a, F) → F'
  18. ApplyMatrix(T_a, G) → G'
  19. ApplyMatrix(T_a, H) → H'
  20. Polygon(A', B', C', D') → poly1, a', b', c', d'
  21. Polygon(E', A', B', F') → poly2, e', a'_1, b'_1, f'
  22. Polygon(B', C', G', F') → poly3, b'_2, c'_1, g', f'_1
  23. Polygon(A', E', H', D') → poly4, a'_2, e'_1, h', d'_1
  24. Polygon(H', D', C', G') → poly5, h'_1, d'_2, c'_2, g'_1
  25. Polygon(H', E', F', G') → poly6, h'_2, e'_2, f'_2, g'_2
  26. Determinant(T_0) → deter
  27. Sequence(Sequence[Sequence[(i, j, k), i, -4, 4, 8 / 3], j, -4, 4, 8 / 3], k, -4, 4, 8 / 3) → points3d, {{{(-4, -4, -4), (-1.3333333333333335, -4, -4), (1.333333333333333, -4, -4), (4, -4, -4)}, {(-4, -1.3333333333333335, -4), (-1.3333333333333335, -1.3333333333333335, -4), (1.333333333333333, -1.3333333333333335, -4), (4, -1.3333333333333335, -4)}, {(-4, 1.333333333333333, -4), (-1.3333333333333335, 1.333333333333333, -4), (1.333333333333333, 1.333333333333333, -4), (4, 1.333333333333333, -4)}, {(-4, 4, -4), (-1.3333333333333335, 4, -4), (1.333333333333333, 4, -4), (4, 4, -4)}}, {{(-4, -4, -1.3333333333333335), (-1.3333333333333335, -4, -1.3333333333333335), (1.333333333333333, -4, -1.3333333333333335), (4, -4, -1.3333333333333335)}, {(-4, -1.3333333333333335, -1.3333333333333335), (-1.3333333333333335, -1.3333333333333335, -1.3333333333333335), (1.333333333333333, -1.3333333333333335, -1.3333333333333335), (4, -1.3333333333333335, -1.3333333333333335)}, {(-4, 1.333333333333333, -1.3333333333333335), (-1.3333333333333335, 1.333333333333333, -1.3333333333333335), (1.333333333333333, 1.333333333333333, -1.3333333333333335), (4, 1.333333333333333, -1.3333333333333335)}, {(-4, 4, -1.3333333333333335), (-1.3333333333333335, 4, -1.3333333333333335), (1.333333333333333, 4, -1.3333333333333335), (4, 4, -1.3333333333333335)}}, {{(-4, -4, 1.333333333333333), (-1.3333333333333335, -4, 1.333333333333333), (1.333333333333333, -4, 1.333333333333333), (4, -4, 1.333333333333333)}, {(-4, -1.3333333333333335, 1.333333333333333), (-1.3333333333333335, -1.3333333333333335, 1.333333333333333), (1.333333333333333, -1.3333333333333335, 1.333333333333333), (4, -1.3333333333333335, 1.333333333333333)}, {(-4, 1.333333333333333, 1.333333333333333), (-1.3333333333333335, 1.333333333333333, 1.333333333333333), (1.333333333333333, 1.333333333333333, 1.333333333333333), (4, 1.333333333333333, 1.333333333333333)}, {(-4, 4, 1.333333333333333), (-1.3333333333333335, 4, 1.333333333333333), (1.333333333333333, 4, 1.333333333333333), (4, 4, 1.333333333333333)}}, {{(-4, -4, 4), (-1.3333333333333335, -4, 4), (1.333333333333333, -4, 4), (4, -4, 4)}, {(-4, -1.3333333333333335, 4), (-1.3333333333333335, -1.3333333333333335, 4), (1.333333333333333, -1.3333333333333335, 4), (4, -1.3333333333333335, 4)}, {(-4, 1.333333333333333, 4), (-1.3333333333333335, 1.333333333333333, 4), (1.333333333333333, 1.333333333333333, 4), (4, 1.333333333333333, 4)}, {(-4, 4, 4), (-1.3333333333333335, 4, 4), (1.333333333333333, 4, 4), (4, 4, 4)}}}
  28. Element(points3d, 1, 1) → KKA
  29. Sequence(OrthogonalLine[Element[KKA, i], z = 0], i, 1, 4) → list1
  30. Element(points3d, 1, 2) → KKA1
  31. Element(points3d, 1, 3) → KKA2
  32. Element(points3d, 1, 4) → KKA3
  33. Sequence(OrthogonalLine[Element[KKA1, i], z = 0], i, 1, 4) → list2
  34. Sequence(OrthogonalLine[Element[KKA2, i], z = 0], i, 1, 4) → list3
  35. Sequence(OrthogonalLine[Element[KKA3, i], z = 0], i, 1, 4) → list4
  36. Element(points3d, 2, 1) → KA
  37. Element(points3d, 3, 1) → KA1
  38. Element(points3d, 4, 1) → KA2
  39. Sequence(OrthogonalLine[Element[KKA, i], y = 0, space], i, 1, 4) → list5
  40. Sequence(OrthogonalLine[Element[KA1, i], y = 0, space], i, 1, 4) → list6
  41. Sequence(OrthogonalLine[Element[KA, i], y = 0, space], i, 1, 4) → list7
  42. Sequence(OrthogonalLine[Element[KA2, i], y = 0, space], i, 1, 4) → list8
  43. ApplyMatrix(T_a, list1) → list1'
  44. ApplyMatrix(T_a, list2) → list2'
  45. ApplyMatrix(T_a, list3) → list3'
  46. ApplyMatrix(T_a, list4) → list4'
  47. ApplyMatrix(T_a, list5) → list5'
  48. ApplyMatrix(T_a, list6) → list6'
  49. ApplyMatrix(T_a, list7) → list7'
  50. ApplyMatrix(T_a, list8) → list8'