带分数与分数除法:面积模型互动练习
几何画板及绘图内容加载中,请稍等……
① 本范例通过面积模型直观展示带分数与分数的除法运算,用户可交互操作并观察除法过程。② 核心数学概念包括分数除法、带分数与假分数的转换、乘法与除法的互逆关系,以及用面积模型表示部分与整体的关系。③ 作图要点:使用GeoGebra命令如Shuffle、Element、Textfield、TextToUnicode、Denominator、Numerator、FractionText、Sequence、Zip、Flatten、Polygon、Corner等,构建随机分数对、动态旋转与移动的动画,以及输入框和文本显示,实现交互式练习。④ 适合6-8年级学生,用于课堂演示或自主练习,帮助学生理解分数除法的几何意义,并支持西班牙语翻译。
GeoGebra 命令及参数
Shuffle({{1 / 2, 2 / 3}, {1 / 2, 2 / 5}, {1 / 2, 3 / 5}, {1 / 4, 2 / 3}, {1 / 4, 2 / 5}, {1 / 4, 3 / 5}, {3 / 4, 4 / 5}, {3 / 4, 3 / 5}, {1 / 3, 3 / 4}, {1 / 3, 3 / 5}, {1 / 3, 2 / 5}}) → randomFracPairs, {{0.5, 0.4}, {0.25, 0.6}, {0.25, 0.6666666666666666}, {0.3333333333333333, 0.4}, {0.3333333333333333, 0.6}, {0.75, 0.8}, {0.75, 0.6}, {0.5, 0.6}, {0.3333333333333333, 0.75}, {0.25, 0.4}, {0.5, 0.6666666666666666}}Element(randomFracPairs, Mod[countQuestion, Length[randomFracPairs]] + 1) → currentFracPairTextfield(input1) → InputBox1TextToUnicode(("" * InputBox1)) → inputUnicodeDenominator(fracA) → denARotate(Flatten[Sequence[Sequence[AnchorBStart + (A, (-B)), A, 0, boxWidth, divisionWidth], B, 0, boxWidth, divisionHeight]], ((1 - animateRotate) * pi / 2), RotateCenter) → allPointsBNumerator(fracB) → numerBRemoveUndefined(Sequence[If[Mod[A, denA + 1] ≠ 0, allPointsB(A)], A, 1, ((denA + 1) * numerB)]) → boxPointsBLength(boxPointsB) → maxCountBIf(animateControl < 1, animateControl, 1) → animateDivisionsADenominator(fracB) → denBFractionText(numB) → numBLatexIf(animateControl < 4, 0, If[animateControl ≥ 5, 1, animateControl - floor(animateControl)]) → animateMoveBIf(animateControl < 3, 0, animateControl < 3 + maxCountB, floor(animateControl) - 3, maxCountB) → currentCountBSequence(AnchorPhase2 + (A * (boxWidth / Denominator[numA], 0)), A, 0, numPiecesBPhase2 - 1) → anchorsPhase2If(animateControl < 4, 0, If[animateControl ≥ 4 + maxCountB, 1, animateControl - floor(animateControl)]) → animateCountBIf(animateControl < 5 + maxCountB, 0, If[animateControl > 5 + maxCountB + maxCountA, maxCountA, floor(animateControl) - 5 - maxCountB]) → currentCountAJoin({Sequence[AnchorA1 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1], Sequence[AnchorA2 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1]}) → basePointsAZip(A + (0, boxHeight), A, basePointsA) → topPointsAJoin({Sequence[topPointsA(1) + (0, ((-divisionHeight) * A)), A, 0, denB], Sequence[topPointsA(denA + 1) + (0, ((-divisionHeight) * A)), A, 0, denB]}) → sidePointsAFlatten(Sequence[Sequence[(x(topPointsA(A)), y(sidePointsA(B))), B, 1, denB], A, 1, Length[basePointsA]]) → allAnchorDivisionsASequence(allPointsB(A), A, denA + 1, Length[allPointsB], denA + 1) → sideRightBSequence(allPointsB(A), A, 1, Length[allPointsB], denA + 1) → sideLeftBTake(allPointsB, 1, denA + 1) → topPointsBTake(allPointsB, Length[allPointsB] - denA) → basePointsBPolygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBoxCorner(5) → layoutAppSizeonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetElement({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase) → layoutHintSolnXcornerBox(topPointsA(1), boxWidth, boxHeight) → wholePartAcornerBox(topPointsA(denA + 1), (boxWidth * fracA), boxHeight) → fracPartAPolygon({topPointsB(1), topPointsB(-1), sideRightB(numerB + 1), sideLeftB(numerB + 1)}) → fracPartBIf(animateControl < 1, 0, If[animateControl ≥ 2, 1, animateControl - 1]) → animateDivisionsBZip(Segment[A, A + (animateDivisionsA * (boxWidth, 0))], A, sidePointsA) → divisionBarsAZip(Segment[A, A + (0, boxWidth)], A, basePointsA) → verticalBarsAPolygon(cornersB) → frameBIf(animateControl < 5 + maxCountB, 0, If[animateControl ≥ animationLength, 1, animateControl - floor(animateControl)]) → animateCountFlatten(Sequence[Translate[anchorsPhase2, (0, (((-A) * 2) * divisionHeight))], A, 0, floor(ansVal)]) → allAnchorsPhase2cornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxASequence(cornerBox[allAnchorsPhase2(A), divisionWidth, divisionHeight], A, 1, (ceil(currentCountA / denAnswer) * denAnswer)) → displayFramescornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxFrameZip(Segment[A, B], A, sideLeftB, B, sideRightB) → divisionBarsBZip(Segment[A, A + (animateDivisionsB * (B - A))], A, topPointsB, B, basePointsB) → verticalBarsBcornerBox(boxPointsB(currentCountB) + (If[currentCountB > denA, animateCountB, 0] * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxBSequence(If[A > currentCountB, boxPointsB(A), If[A < currentCountB, anchorsPhase2(A)]], A, 1, Length[boxPointsB]) → currentLocationsBZip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsB) → boxesBIf(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeASequence(If[A > currentCountA, allAnchorDivisionsA(A), If[A < currentCountA, allAnchorsPhase2(A)]], A, 1, maxCountA) → currentLocationsAZip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsA) → boxesAcornerBox(boxPointsB(currentCountB) + (animateCountB * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxBFrameText(numBLatex, AnchorB - (1, 0), true, true, 0, 0) → lblBhintIf(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeBText((("" * numALatex) * If[animateDivisionsA ≟ 1, (((("=\dfrac{" * numPiecesA) * "}{") * commonDen) * "}"), ""]), AnchorLabel, true, true, -1, 0) → hintNumAText((("" * numBLatex) * If[animateDivisionsB > 0, (((("=\dfrac{" * numPiecesBPhase2) * "}{") * commonDen) * "}"), ""]), AnchorLabel + (0, -6), true, true, -1, 0) → hintNumBIf(animateControl < 4 + maxCountB, 0, If[animateControl ≥ 5 + maxCountB, 1, animateControl - floor(animateControl)]) → animateFadeBoxesB
AI 绘图提示语参考
画一个交互式分数除法面积模型,展示如何用图形方法除以分数和带分数。首先绘制一个矩形代表被除数,然后根据除数分割成若干部分,用动画演示分割和移动的过程,最后显示结果。图形应包含输入框让用户输入分数,动态生成随机分数对,并用不同颜色区分整数部分和分数部分。
以上提示语为根据原始绘图命令整理而来,仅供参考。