Seeing Multiplication

Seeing Multiplication
Loading the math board and drawing, please wait…
2016-09-02 00:49
This example demonstrates the geometric interpretation of multiplication through dynamic visuals, transforming abstract multiplication into visual area calculations and overlays. Core math concepts include multiplication, linear programming, congruence, addition, probability, and percentages. It uses GeoGebra commands like Textfield, If, Sequence, Segment, Max, First, and CurveCartesian, with sliders for dynamic parameter adjustment. Suitable for middle school and above to explore the geometric essence of multiplication and basic linear programming.

GeoGebra Commands & Parameters

  1. Textfield(a1text) → InputBox2
  2. Textfield(a2text) → InputBox1
  3. If(a1 < 5, 1, If[a1 < 9, 2, 3]) → groupLayoutSizes
  4. Sequence(Element[Flatten[Sequence[Sequence[Point[{(4.5 / groupLayoutSizes * i), (9 / groupLayoutSizes * j)}], i, 0, a1 - 1], j, 0, groupLayoutSizes - 1]], k], k, 1, (a1 * groupLayoutSizes), groupLayoutSizes) → groupCenters
  5. Sequence(Point[{i, 0}], i, 0, ((2 * a1) * a2), a2) → lineDots
  6. Segment(Element[lineDots, 1], (2 * Element[lineDots, Length[lineDots]])) → line
  7. Sequence(Point[{i, 0}], i, 0, line) → linemarks
  8. Max(a1, a2) → arraySize
  9. If(b, a1 + ((0.5 * arraySize) * sqrt(a2 / a1)), If[a, ((1.5 * a1) * a2), If[c, (5 * a1 / groupLayoutSizes), 10]]) → right
  10. If(b, ((-0.05 * arraySize) * sqrt(a1 / a2)), If[a, (-0.5 * a2 / π), If[c, -2, 0]]) → bottom
  11. Sequence(Sequence[Polygon[(i, j), (i + 1, j), 4], i, 0, a1 - 1], j, 0, a2 - 1) → array
  12. First(Element[array, 1], arrayTimer1) → firstArray
  13. First(array, arrayTimer2) → secondArray
  14. CurveCartesian((a2 / ((2 * π)) * (t - sin(t))), (a2 / ((2 * π)) * (1 - cos(t))), t, 0, jumpTimer) → d
  15. If(b, ((-0.5 * arraySize) * sqrt(a2 / a1)), If[a, ((-0.1 * a1) * a2), If[c, (-a1), -10]]) → left
  16. If(b, a2 + ((0.05 * arraySize) * sqrt(a1 / a2)), If[a, (1.5 * a2 / π), If[c, (groupLayoutSizes * 3), 10]]) → top
  17. First(Sequence[Circle[Element[groupCenters, i], 1.25], i, 1, Length[groupCenters]], circleTimer) → groupCircles
  18. First(Flatten[Sequence[Sequence[Element[groupCenters, i] + ((1 - a2) / a2 * (cos(((2 * π / a2) * j)), sin(((2 * π / a2) * j)))), j, 0, a2 - 1], i, 1, Length[groupCenters]]], dotTimer) → groupDots
  19. Sequence(Text[x(Element[lineDots, i]), Element[lineDots, i] + (((-right)) / 100, bottom / 2.5)], i, 1, Length[lineDots]) → lineText