Seeing Multiplication
Loading the math board and drawing, please wait…
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
Textfield(a1text) → InputBox2Textfield(a2text) → InputBox1If(a1 < 5, 1, If[a1 < 9, 2, 3]) → groupLayoutSizesSequence(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) → groupCentersSequence(Point[{i, 0}], i, 0, ((2 * a1) * a2), a2) → lineDotsSegment(Element[lineDots, 1], (2 * Element[lineDots, Length[lineDots]])) → lineSequence(Point[{i, 0}], i, 0, line) → linemarksMax(a1, a2) → arraySizeIf(b, a1 + ((0.5 * arraySize) * sqrt(a2 / a1)), If[a, ((1.5 * a1) * a2), If[c, (5 * a1 / groupLayoutSizes), 10]]) → rightIf(b, ((-0.05 * arraySize) * sqrt(a1 / a2)), If[a, (-0.5 * a2 / π), If[c, -2, 0]]) → bottomSequence(Sequence[Polygon[(i, j), (i + 1, j), 4], i, 0, a1 - 1], j, 0, a2 - 1) → arrayFirst(Element[array, 1], arrayTimer1) → firstArrayFirst(array, arrayTimer2) → secondArrayCurveCartesian((a2 / ((2 * π)) * (t - sin(t))), (a2 / ((2 * π)) * (1 - cos(t))), t, 0, jumpTimer) → dIf(b, ((-0.5 * arraySize) * sqrt(a2 / a1)), If[a, ((-0.1 * a1) * a2), If[c, (-a1), -10]]) → leftIf(b, a2 + ((0.05 * arraySize) * sqrt(a1 / a2)), If[a, (1.5 * a2 / π), If[c, (groupLayoutSizes * 3), 10]]) → topFirst(Sequence[Circle[Element[groupCenters, i], 1.25], i, 1, Length[groupCenters]], circleTimer) → groupCirclesFirst(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) → groupDotsSequence(Text[x(Element[lineDots, i]), Element[lineDots, i] + (((-right)) / 100, bottom / 2.5)], i, 1, Length[lineDots]) → lineText