Deciding Multiplication or Division
Loading the math board and drawing, please wait…
This example demonstrates how to determine multiplication or division through geometric construction. Key mathematical concepts include geometric transformations, coordinate geometry, and function graphing. The construction involves using GeoGebra commands like If, Min, Point, Sequence, etc. It is suitable for middle school students learning the integration of geometry and algebra, and high school students practicing function graph analysis.
GeoGebra Commands & Parameters
If(valid, Min[n1User, n2User], 1) → n2Min(3 / n2V, 9 / n2H) → n2SpreadFirst(Flatten[Sequence[Sequence[n2PointsStarter + ((i * n2Spread), (j * n2Spread)), j, 0, n2V - 1], i, 0, n2H - 1]], n2) → n2UnsortedCentersIf(valid, Max[n1User, n2User], 1) → n1Zip(y(AAA), AAA, n2UnsortedCenters) → n2CentersSorterMin(3 / n1V, 9 / n1H) → n1SpreadFirst(Flatten[Sequence[Sequence[n1PointsStarter + ((i * n1Spread), (j * n1Spread)), j, 0, n1V - 1], i, 0, n1H - 1]], n1) → n1UnsortedCentersZip(y(AAA), AAA, n1UnsortedCenters) → n1CentersSorterPoint(moverLines) → AMin(1, Max[Distance[A, (0, 0)] - 0.25, 0]) → darkenerSort(n1UnsortedCenters, n1CentersSorter) → n1CentersIf(darkener ≟ 1, (Distance[A, (0, 0)] - 1.25) / 2, 0) → moveSequence(Sequence[Element[n1Centers, j] + ((i * n1Side / n2), 0), i, 0, n2 - 1], j, 1, n1) → n1Dn2StartPointsSort(n2UnsortedCenters, n2CentersSorter) → n2CentersSequence(First[Flatten[Sequence[Sequence[Element[n2Centers, i] + (n1Dn2EndGap, n1Dn2EndGap) + (((2 * n1Dn2EndGap) * j), ((2 * n1Dn2EndGap) * k)) + ((n1Dn2EndHeight * j), (n1Dn2EndHeight * k)), j, 0, ceil(sqrt(ceil(n1 / n2))) - 1], k, 0, ceil(sqrt(ceil(n1 / n2))) - 1]], ceil(n1 / n2)], i, 1, n2) → n1Dn2EndPointHelperZip(Polygon[AAA, AAA + (n2Side, 0), 4], AAA, n2Centers) → n2OrigPolysSequence(n2Centers, i, 1, n1) → n1Mn2StartPointsSequence(Sequence[Element[n2Centers, j] + ((i * n2Side / n1), 0), i, 0, n1 - 1], j, 1, n2) → n2Dn1StartPointsSequence(Sequence[Element[n1Centers, j] + ((i * n1Side / n1), 0), j, 1, n1], i, 0, n2 - 1) → n2Dn1EndPointsZip(Polygon[AAA, AAA + (n1Side, 0), 4], AAA, n1Centers) → n1OrigPolysFlatten(Sequence[Sequence[Sequence[Element[n1Dn2EndPointHelper, i, j] + ((n1Dn2EndHeight / n2 * (k - 1)), 0), k, 1, If[j > floor(n1 / n2), Mod[n1, n2], n2]], j, 1, ceil(n1 / n2)], i, 1, n2]) → n1Dn2UngroupedEndPointsSequence(Sequence[Element[n1Dn2UngroupedEndPoints, i + (n1 * j)], j, 0, n2 - 1], i, 1, n1) → n1Dn2EndPointsIf(x(A) > 0, 1, If[y(A) > 0, 2, If[x(A) < 0, 3, 4]]) → indexSequence(n1Centers, i, 1, n2) → n2Mn1StartPointsZip(First[Flatten[Sequence[Sequence[AAA + ((n2Mn1EndGap * ((2 * i) + 1)), (n2Mn1EndGap * ((2 * j) + 1))) + ((i * n2Mn1EndWidth), (j * n2Mn1EndWidth)), i, 0, ceil(sqrt(n1)) - 1], j, 0, ceil(sqrt(n1)) - 1]], n1], AAA, n2Centers) → n2Mn1EndPointsZip(First[Flatten[Sequence[Sequence[AAA + ((n1Mn2EndGap * ((2 * i) + 1)), (n1Mn2EndGap * ((2 * j) + 1))) + ((i * n1Mn2EndWidth), (j * n1Mn2EndWidth)), i, 0, ceil(sqrt(n2)) - 1], j, 0, ceil(sqrt(n2)) - 1]], n2], AAA, n1Centers) → n1Mn2EndPointsElement({n1Mn2StartPoints, n1Dn2StartPoints, n2Mn1StartPoints, n2Dn1StartPoints}, index) → startPointsElement({n1Mn2EndPoints, n1Dn2EndPoints, n2Mn1EndPoints, n2Dn1EndPoints}, index) → endPointsFirst(Sequence[Max[0, Min[1, ((If[index ≥ 3, n2, n1] + 1) / 2 * (move - k / (If[index ≥ 3, n2, n1] + 1)))]], k, 0, If[index ≥ 3, n2, n1] + 1], If[index ≥ 3, n2, n1]) → moversElement({n2Side, n1Side, n1Side, n2Side}, index) → startHeightElement({n1Mn2EndHeight, n1Dn2EndHeight, n2Mn1EndHeight, n1Side}, index) → endHeightElement({n1Mn2EndWidth, n1Dn2EndWidth, n2Mn1EndWidth, n2Dn1EndWidth}, index) → endWidthElement({n1Mn2StartWidth, n1Dn2StartWidth, n2Mn1StartWidth, n2Dn1StartWidth}, index) → startWidthZip((AAA * (1 - CCC)) + (BBB * CCC), AAA, startPoints, BBB, endPoints, CCC, movers) → movingPointsSequence(Sequence[Polygon[Element[movingPoints, i, j], Element[movingPoints, i, j] + ((startWidth * (1 - Element[movers, i])) + (endWidth * Element[movers, i]), 0), Element[movingPoints, i, j] + ((startWidth * (1 - Element[movers, i])) + (endWidth * Element[movers, i]), (startHeight * (1 - Element[movers, i])) + (endHeight * Element[movers, i])), Element[movingPoints, i, j] + (0, (startHeight * (1 - Element[movers, i])) + (endHeight * Element[movers, i]))], j, 1, Length[Element[movingPoints, i]]], i, 1, Length[movingPoints]) → movingPolysFlatten({n1OrigPolys, n2OrigPolys}) → backgroundsTextfield(n1User) → InputBox1Textfield(n2User) → InputBox2Sequence(Sequence[Polygon[Element[n1Dn2EndPointHelper, i, j], Element[n1Dn2EndPointHelper, i, j] + (n1Dn2EndHeight, 0), 4], i, 1, n2], j, 1, (move ≟ 1 ∧ n1 / n2 ≠ floor(n1 / n2)) + Div[Sum[Zip[floor(AAA), AAA, movers]], n2]) → n1Dn2EndWholePolys
AI Drawing Prompt Reference
Draw a geometric figure where the shape and size are determined by the user's input values, deciding between multiplication or division. First, based on the user's input, create multiple small squares or rectangles, which will be scaled and moved according to the input values, forming a dynamic geometric pattern. Finally, based on the user's input, determine the final shape of the figure to show the result of multiplication or division.
The prompt above was compiled from the original drawing commands and is for reference only.