分数乘以整数的可视化
几何画板及绘图内容加载中,请稍等……
①本范例通过动态演示,直观展示分数乘以整数的几何意义,将抽象运算转化为可视图形;②涉及核心数学概念包括分数乘法、几何表示、单位分割与累加;③构造中运用了 GeoGebra 命令 Sequence(序列生成)、Sort(排序)、First(取首元素)、Flatten(展平)、Textfield(文本框)、Text(文本显示)、If(条件判断)、Point(点)、Circle(圆)、Sector(扇形)、Segment(线段);对象包括 wedgeMover(扇形移动器)、circleCenters(圆心集合)、dividend(被乘数)、dWidth(宽度)、den(分母)、repeatedCenters(重复中心点)、destinationCenters(目标中心点)、dc_h(高)、dc_s(扇形高)、num(分子)、numberFinalGroups(最终分组数)、fgc2(分组中心2)、realFGC(真实分组中心)、wedgemover2(扇形移动器2)、dividendText(被乘数文本)、numText(分子文本)、denText(分母文本)、InputBox1(输入框1)、text1(文本1)、InputBox2(输入框2)、InputBox3(输入框3)、button1(按钮1)、circles(圆集合)、movingCenters(移动中心点)、wedges(扇形集合)、movingCircles(移动圆)、secondMovingCenters(第二移动中心点)、movingWedges(移动扇形)、finalGroupedCenters(最终分组中心)、secondMovingCircles(第二移动圆)、step(步进)、a(参数)、button2(按钮2)、opacity(透明度)、button3(按钮3)、b(参数)、ghostWedges(幽灵扇形)、B(参数)、wholeNumber(整数)、fraction(分数);④适合初中及以上数学教学,用于分数运算的可视化教学与理解。
GeoGebra 命令及参数
Sequence(Point[{(-1.5 * (dividend - 1)) + (3 * Mod[i, dWidth]), -3 - (3 * Div[i, dWidth])}], i, 0, (den * dividend) - 1) → destinationCentersSort(Sequence[(x(Element[Reverse[destinationCenters], i]), i), i, 1, Length[destinationCenters]]) → dc_hSequence(Element[Reverse[destinationCenters], y(Element[dc_h, i])], i, 1, Length[destinationCenters]) → dc_sFirst(destinationCenters, numberFinalGroups) → fgc2Flatten(Sequence[Sequence[Element[fgc2, i], j, 1, num], i, 1, Length[fgc2]]) → realFGCTextfield(dividendText) → InputBox1Textfield(numText) → InputBox2Textfield(denText) → InputBox3Sequence(Circle[Element[circleCenters, i], 0.5], i, 1, 4) → circlesSequence((Element[repeatedCenters, i] * (1 - wedgeMover)) + (Element[dc_s, i] * wedgeMover), i, 1, (den * dividend)) → movingCentersSequence(Sequence[Sector[Element[circles, i], (((2 * π)) / den * j), (((2 * π)) / den * (j + 1))], j, 1, den], i, 1, 4) → wedgesSequence(Circle[Element[movingCenters, i], 0.5], i, 1, 2) → movingCirclesSequence((Element[dc_s, i] * (1 - wedgemover2)) + (Element[realFGC, i] * wedgemover2), i, 1, (den * 2)) → secondMovingCentersSequence(Sector[Element[movingCircles, i], ((i * 2) * π / den), (((i + 1) * 2) * π / den)], i, 1, (den * dividend)) → movingWedgesSequence(Take[destinationCenters, i, i + num - 1], i, 1, (den * dividend), num) → finalGroupedCentersSequence(Circle[Element[secondMovingCenters, i], 0.5], i, 1, 2) → secondMovingCirclesText(floor((den * dividend / num))) → wholeNumberIf(floor((den * dividend / num)) ≟ (den * dividend / num), "", FractionText[(den * dividend / num) - floor((den * dividend / num))]) → fractionPoint({0, (top + bottom) / 2}) → centerSequence(Sector[Element[secondMovingCircles, i], (i * ((2 * π)) / den), ((i + 1) * ((2 * π)) / den)], i, 1, (den * dividend)) → movingWedges2Point(xAxis) → CPoint(xAxis) → DCircle(C, D) → dPoint(xAxis) → EPoint(xAxis) → GPoint(xAxis) → HCircle(G, H) → gPoint(xAxis) → IPoint(circles) → JCircle(I, J) → hSequence(Rotate[D, (360° * i / den), C], i, 1, den) → l1Sequence(Segment[C, Element[l1, i]], i, 1, den) → l2Sequence(Rotate[F, (360° * i / den), E], i, 1, den) → l3Sequence(Segment[E, Element[l3, i]], i, 1, den) → l4Circle(E, F) → eSector(e, F, Element[l3, 1]) → kSequence(Rotate[H, (360° * i / den), G], i, 1, den) → l5Sequence(Segment[G, Element[l5, i]], i, 1, den) → l6Sequence(Rotate[J, (360° * i / den), I], i, 1, den) → l7Sequence(Segment[I, Element[l7, i]], i, 1, den) → l8Sector(h, J, Element[l7, 1]) → pPoint(movingWedges2) → KCircle(L, M) → qSequence(Rotate[M, (360° * i / den), L], i, 1, den) → l9Sequence(Segment[L, Element[l9, i]], i, 1, den) → l10Sector(q, M, Element[l9, 2]) → rPoint(movingWedges2) → OPoint(yAxis) → PCircle(P, Q) → tSequence(Rotate[Q, (360° * i / den), P], i, 1, den) → l13Sequence(Segment[P, Element[l13, i]], i, 1, den) → l14Circle(N, R) → sSequence(Rotate[R, (360° * i / den), N], i, 1, den) → l11Sequence(Segment[N, Element[l11, i]], i, 1, den) → l12If(bruno > 0, 1, 0) → lalSegment(A, S) → f