用弹珠和沙袋探索整数加减法

用弹珠和沙袋探索整数加减法
几何画板及绘图内容加载中,请稍等……
2023-02-14 10:10
这个活动通过构建整数加减法的表达式,帮助学生直观理解正负数的概念。核心数学概念是整数加法和减法,涉及方向变化和位置移动。作图要点包括使用GeoGebra命令如Shuffle、RandomUniform、Polygon等来创建弹珠和沙袋的动态模型。适合小学6-8年级学生用于课堂互动和数学概念巩固。

GeoGebra 命令及参数

  1. Shuffle(Flatten[{Sequence[Rotate[(6.5, 3.25), (((-1)^(n) * 30) * n°), (6.5, 4.5)], n, 1, 6], Sequence[Rotate[(6.5, 2), (((-1)^(n) * 20) * n°), (6.5, 4.5)], n, 1, 9], Sequence[Rotate[(6.5, 3.25), (((-1)^(n) * 30) * n°), (6.5, 4.5)], n, 7, 12], Sequence[Rotate[(6.5, 2), (((-1)^(n) * 20) * n°), (6.5, 4.5)], n, 10, 18]}]) → balloonStartUnShuffled, {(5.875, 5.582531754730549), (8.106969024216347, 6.415111107797445), (8.665063509461095, 5.75), (7.582531754730549, 5.125), (7.582531754730548, 3.875), (5.417468245269452, 5.125000000000001), (8.96201938253052, 4.934120444167326), (6.500000000000001, 3.25), (5.875, 3.4174682452694514), (4.893030975783651, 2.5848888922025557), (6.5, 5.75), (5.25, 4.5), (4.334936490538903, 3.25), (7.125, 5.582531754730548), (8.96201938253052, 4.065879555832674), (7.3550503583141715, 2.1507684480352287), (4.334936490538903, 5.749999999999999), (4.03798061746948, 4.934120444167326), (5.417468245269452, 3.875), (6.499999999999999, 2), (5.6449496416858285, 6.849231551964771), (7.355050358314172, 6.84923155196477), (5.6449496416858285, 2.1507684480352287), (8.106969024216347, 2.584888892202555), (7.75, 4.5), (8.665063509461097, 3.2500000000000018), (6.5, 7), (4.893030975783651, 6.415111107797445), (4.037980617469479, 4.065879555832675), (7.125000000000001, 3.4174682452694523)}
  2. RandomUniform(0, 0.99, 250) → allRandomSeeds, {0.503853512517073, 0.7491111701492235, 0.8442527536337929, 0.4921483817071251, 0.8375961156112641, 0.6568427521197299, 0.609819764304549, 0.7511134210471476, 0.21101441771551252, 0.3683922655296436, 0.7156928479753363, 0.5113385770061567, 0.7060700318307322, 0.0021556776285795577, 0.5505780431148576, 0.045915346394319434, 0.8230031786207095, 0.5007064796958661, 0.5087705086707899, 0.2174346943892503, 0.17606723675165864, 0.8840649058810164, 0.2182261432318514, 0.2995973947989045, 0.6205752727468329, 0.8293919253214111, 0.0407733623560389, 0.09212092763834852, 0.6554221514786751, 0.4028707348280854, 0.5118852511465564, 0.5141733983078179, 0.040118609253080466, 0.4262082819773261, 0.14277425604575858, 0.7374535000468433, 0.45868449303090514, 0.33279666436175126, 0.5163509847548121, 0.7568620620362925, 0.7944963465519358, 0.10711958161271502, 0.2608051773689834, 0.4544735130297443, 0.570370025779852, 0.3954708578870268, 0.2302214393830906, 0.08121799345562064, 0.7767819636603904, 0.7164724691160198, 0.5807342390740972, 0.19032253040999353, 0.918193697269224, 0.08623664267311155, 0.8432554663350166, 0.11713624938144755, 0.0029415782673552727, 0.37531183392922096, 0.729775327078474, 0.14147832266445395, 0.5560898360627231, 0.332784101697298, 0.6796411170012074, 0.7210983652436165, 0.4270180508618833, 0.9070764794869446, 0.2250602363082825, 0.2682277270323478, 0.5543239159280636, 0.4730950494178332, 0.021353746698596673, 0.06552637444380097, 0.5298717129978552, 0.24141651254647378, 0.1472025616803171, 0.3929936863420067, 0.7215006746443676, 0.14719356958276925, 0.5532834973756854, 0.9036124062021141, 0.6800321041421806, 0.3143749642830807, 0.8142837511812776, 0.7526342264508614, 0.3407733646559731, 0.10469419360481774, 0.26931192626465544, 0.2434909966652849, 0.8627157985926341, 0.8306757309007897, 0.37919030072944365, 0.1623298229403252, 0.48005870995363137, 0.1376401852761594, 0.7660174479842649, 0.303121059959084, 0.3405646847841549, 0.9813599842053247, 0.5107322101072489, 0.08617690958442539, 0.7335622505171573, 0.5156237079341588, 0.5381891137639914, 0.6547450596417046, 0.14715959406785806, 0.7675133685476685, 0.8164722033510113, 0.3871044144222482, 0.32941887735882863, 0.6776803767323077, 0.6078286829602608, 0.025292349369004232, 0.6518637666748603, 0.7583260091917172, 0.5426954272022108, 0.4962306260124898, 0.9157530255954273, 0.07295037781146235, 0.5558205326634509, 0.8265938175441992, 0.5420512363510357, 0.34922755262548355, 0.594449492434236, 0.1892775781192458, 0.664963586750838, 0.34959814807653516, 0.8929490433952908, 0.8267752694556303, 0.8462740976734937, 0.7733396252969968, 0.1560842102313255, 0.34516013001405893, 0.27353769054588095, 0.41898287851053095, 0.23444316159291897, 0.1816964530168705, 0.049424231731910066, 0.556987569866692, 0.26022092531400154, 0.34936676099363817, 0.10219864603561113, 0.9195721814066026, 0.7397280350418357, 0.8128031394845736, 0.25844355007446895, 0.06751386758565449, 0.17058120367183158, 0.9322497209909817, 0.6186922734875855, 0.20259091153524866, 0.8765631047827966, 0.11525933491805027, 0.07463748435295056, 0.36913554107993046, 0.41160442992230295, 0.6898410911866033, 0.7330164374164682, 0.8388973709862068, 0.35624652752666197, 0.03772677559335418, 0.5661469248583154, 0.6600872454231625, 0.7852839025069269, 0.522312566147315, 0.7423986538869815, 0.3540792196255298, 0.7540655850170126, 0.3526590412984837, 0.4916325313891629, 0.7917928802312191, 0.7731514169317661, 0.7726956220403896, 0.020826162064310694, 0.5362610922490813, 0.42667271096407855, 0.6234772995770582, 0.7337267745419906, 0.768307452789304, 0.0688397703659346, 0.8459796832965336, 0.6254333847564936, 0.6086162369968618, 0.405566887878767, 0.9724950369753023, 0.5283080070454441, 0.26177138322670584, 0.20415294914694473, 0.44620515142351513, 0.5195513523297717, 0.19607430150267427, 0.5733600813107073, 0.9109587239750202, 0.0031513700218749594, 0.43711984475042487, 0.559073734925516, 0.8266686649334103, 0.9497237713309669, 0.6432174411981179, 0.3270084269387239, 0.6900719835735651, 0.027011298491107477, 0.7267888505079765, 0.11363832134900193, 0.7358577417522261, 0.2914945703604786, 0.4178571049037389, 0.35968777163298654, 0.9693700552959139, 0.5176900548199194, 0.27366051044088735, 0.7071076991442704, 0.799231973920847, 0.3862712726065986, 0.38228334020296223, 0.4604933060654686, 0.8063119106936841, 0.5851473863555019, 0.1479896786483445, 0.887365571148918, 0.6244679628364376, 0.1590693152516553, 0.31167923189424773, 0.35864303013338567, 0.15845729156106408, 0.1732055515445325, 0.7115540384426994, 0.3709722379804371, 0.8852851279628705, 0.06444174629750812, 0.9566922348802741, 0.9863646781311243, 0.46709573925557585, 0.14090480340005465, 0.6297699415052588, 0.7318044593026806, 0.116469776413336, 0.5653989838324913, 0.45465500741351983, 0.8121457933028077, 0.108694878977569, 0.942063670506768, 0.3200160409479908, 0.06371066499457395, 0.950214337675382, 0.8676233707063931, 0.8714475429374168, 0.9535266303435326, 0.5580349610116893, 0.30909891052075406, 0.0019071600828481404}
  3. Shuffle({-9, -3, 2, 9}) → randomYCloudStarts, {-3, -9, 2, 9}
  4. Shuffle(Flatten[{Sequence[(6.5, -4.5) + ((2 * cos(n)), sin(n)), n, -6, 6], Sequence[(6.5, -4.5) + ((3 * cos(n)), (1.75 * sin(n))), n, -9, 9]}]) → bagStartUnShuffled, {(7.067324370926452, -5.458924274663138), (5.251559490358573, -2.9087295030550573), (8.761706763029913, -5.649726547757881), (3.5300225101986635, -4.746960014104768), (8.420340573300733, -4.779415498198926), (8.120906917604419, -5.972574223413819), (3.7666092143459693, -3.778792650826926), (8.120906917604419, -3.027425776586181), (5.667706326905715, -5.409297426825682), (9.380510859951098, -4.98897712184812), (8.5, -4.5), (8.420340573300733, -4.220584501801074), (3.7666092143459693, -5.221207349173074), (5.192712758272776, -3.7431975046920716), (6.063499898574159, -6.231376931590918), (4.5390691374091645, -3.1755956332111257), (5.667706326905715, -3.590702573174318), (4.5390691374091645, -5.824404366788874), (4.52001500679911, -4.358879991940133), (7.350986556389679, -6.178117480660492), (7.5806046117362795, -5.341470984807897), (4.52001500679911, -4.641120008059867), (7.5806046117362795, -3.6585290151921033), (9.380510859951098, -4.01102287815188), (7.067324370926452, -3.5410757253368614), (5.192712758272776, -5.256802495307928), (5.251559490358573, -6.091270496944943), (6.063499898574159, -2.768623068409082), (9.5, -4.5), (3.5300225101986635, -4.253039985895232), (7.350986556389679, -2.821882519339508), (8.761706763029913, -3.350273452242119)}
  5. Zip(Distance[n, y = -9], n, bagsDroppedCopy) → bagDropDistance
  6. Sequence(Sum[First[bagDropDistance, n]], n, 1, Length[bagDropDistance]) → bagDropDistanceCum
  7. Sequence(If[n > 1 ∧ animationDropSlider < bagDropDistanceCum(n - 1) ∨ n ≟ 1 ∧ animationDropSlider ≟ 0, 0, animationDropSlider < bagDropDistanceCum(n), animationDropSlider - If[n ≟ 1, 0, bagDropDistanceCum(n - 1)], bagDropDistance(n)], n, 1, Length[bagDropDistanceCum]) → bagDropAnimateSlider
  8. If(32 - Mod[numSandbagsTotalStatic, 32] < abs(numSandbagsStatic), {Mod[numSandbagsTotalStatic, 32] + 1, 32, abs(numSandbagsStatic) - (32 - Mod[numSandbagsTotalStatic, 32])}, {Mod[numSandbagsTotalStatic, 32] + 1, Mod[numSandbagsTotalStatic, 32] + abs(numSandbagsStatic), 0}) → bagsTake
  9. If(numSandbagsStatic < 0, Flatten[{Take[bagStartUnShuffled, bagsTake(1), bagsTake(2)], First[bagStartUnShuffled, bagsTake(3)]}], {}) → bagsDropped
  10. Zip((x(n), -8.85), n, bagsDropped) → bagDropListGround
  11. Zip(PartitionPoint[n, m, p, k], n, bagsDroppedCopy, m, bagDropListGround, p, bagDropAnimateSlider, k, bagDropDistance) → bagDropAnimatePoints
  12. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  13. Sequence((100 + floor((allRandomSeeds(A) * 60))) / 10, A, 2, 51) → cloud1x, {14.4, 15, 12.9, 15, 13.9, 13.6, 14.5, 11.2, 12.2, 14.2, 13, 14.2, 10, 13.3, 10.2, 14.9, 13, 13, 11.3, 11, 15.3, 11.3, 11.7, 13.7, 14.9, 10.2, 10.5, 13.9, 12.4, 13, 13, 10.2, 12.5, 10.8, 14.4, 12.7, 11.9, 13, 14.5, 14.7, 10.6, 11.5, 12.7, 13.4, 12.3, 11.3, 10.4, 14.6, 14.2, 13.4}
  14. Sequence((-20 + floor((allRandomSeeds(A) * 40))) / 10, A, 52, 72) → cloud1y, {-1.3, 1.6, -1.7, 1.3, -1.6, -2, -0.5, 0.9, -1.5, 0.2, -0.7, 0.7, 0.8, -0.3, 1.6, -1.1, -1, 0.2, -0.2, -2, -1.8}
  15. Polygon(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)}]) → borderBox
  16. Corner(5) → Dims
  17. Segment((0, 0), (0, 8)) → verticalLineTop
  18. Segment((0, 0), (0, -8)) → verticalLineBottom
  19. Polygon({BucketPoint + (1, 1), BucketPoint + (1, -1), BucketPoint + (-1, -1), BucketPoint + (-1, 1)}) → bucketArea
  20. If(Length[bagDropDistance] > 0, Sum[bagDropDistance], 1) → animationDropRange
  21. IndexOf(Element[KeepIf[n ≥ animationDropSlider, n, bagDropDistanceCum], 1], bagDropDistanceCum) → animationCount
  22. Zip(Circle[n, 1], n, cloud1Points) → cloud1
  23. Sequence((-20 + floor((allRandomSeeds(A) * 40))) / 10, A, 73, 93) → cloud2x, {0.1, -1.1, -1.5, -0.5, 0.8, -1.5, 0.2, 1.6, 0.7, -0.8, 1.2, 1, -0.7, -1.6, -1, -1.1, 1.4, 1.3, -0.5, -1.4, -0.1}
  24. Sequence((-10 + floor((allRandomSeeds(A) * 10))) / 10, A, 94, 114) → cloud2y, {-0.9, -0.3, -0.7, -0.7, -0.1, -0.5, -1, -0.3, -0.5, -0.5, -0.4, -0.9, -0.3, -0.2, -0.7, -0.7, -0.4, -0.4, -1, -0.4, -0.3}
  25. Zip(Circle[n, 1], n, cloud2Points) → cloud2
  26. Sequence((50 + floor((allRandomSeeds(A) * 50))) / 10, A, 115, 155) → cloud3x, {7.7, 7.4, 9.5, 5.3, 7.7, 9.1, 7.7, 6.7, 7.9, 5.9, 8.3, 6.7, 9.4, 9.1, 9.2, 8.8, 5.7, 6.7, 6.3, 7, 6.1, 5.9, 5.2, 7.7, 6.3, 6.7, 5.5, 9.5, 8.6, 9, 6.2, 5.3, 5.8, 9.6, 8, 6, 9.3, 5.5, 5.3, 6.8, 7}
  27. Sequence((-15 + floor((allRandomSeeds(A) * 30))) / 10, A, 155, 195) → cloud3y, {-0.3, 0.5, 0.6, 1, -0.5, -1.4, 0.1, 0.4, 0.8, 0, 0.7, -0.5, 0.7, -0.5, -0.1, 0.8, 0.8, 0.8, -1.5, 0.1, -0.3, 0.3, 0.7, 0.8, -1.3, 1, 0.3, 0.3, -0.3, 1.4, 0, -0.8, -0.9, -0.2, 0, -1, 0.2, 1.2, -1.5, -0.2, 0.1}
  28. Zip(Circle[n, 1], n, cloud3Points) → cloud3
  29. Polygon({(-3.5, 9), (-3.5, -9), (13.5, -9), (13.5, 9)}) → moveArea
  30. Polygon({(-3.5, 9), (-3.5, -9), (13.5, -9), (13.5, 9)}) → moveBorder
  31. Sequence((20 + floor((allRandomSeeds(A) * 40))) / 10, A, 195, 215) → cloud4x, {4.2, 5.3, 5.7, 4.5, 3.3, 4.7, 2.1, 4.9, 2.4, 4.9, 3.1, 3.6, 3.4, 5.8, 4, 3, 4.8, 5.1, 3.5, 3.5, 3.8}
  32. Sequence((-10 + floor((allRandomSeeds(A) * 20))) / 10, A, 216, 236) → cloud4y, {0.6, 0.1, -0.8, 0.7, 0.2, -0.7, -0.4, -0.3, -0.7, -0.7, 0.4, -0.3, 0.7, -0.9, 0.9, 0.9, -0.1, -0.8, 0.2, 0.4, -0.8}
  33. Zip(Circle[n, 1], n, cloud4Points) → cloud4
  34. Sequence(RandomPointIn[Circle[(6.5, 5), 2.5]], n, 1, 40) → balloonPoints, {(4.166850898618858, 4.618813171611889), (4.740986745676254, 3.563977444185191), (7.093645915082135, 4.716639902998579), (5.0376651967490025, 3.9076709746684903), (8.195853021651832, 6.390578615547718), (6.7992043750369575, 4.139888339997933), (6.7578045184545505, 2.585492286394267), (7.355749720523023, 5.568552625056579), (7.944908353329048, 3.0473980790431376), (7.568517293162504, 5.013020249488492), (4.01704839642357, 4.838552187377228), (6.2352961514871375, 4.374377842905806), (8.14070149482979, 5.923705689184024), (8.7758863836073, 4.164122184446975), (4.137014186959725, 4.942617016967092), (7.54021554667578, 6.328899568324715), (5.577688438344177, 4.724948792363318), (8.152236664217643, 6.70404112121904), (7.431420184625761, 2.750714823969317), (5.5671410247267525, 7.076544956257384), (4.55638279313643, 4.160987705153432), (4.096940345161136, 4.69519153100812), (8.892123548023617, 5.379367228584252), (7.151682344535949, 5.822399542459536), (8.934538633125754, 4.480182990646666), (7.238735190036262, 4.028000672552916), (7.44807055342595, 5.581004680083521), (8.496192997531468, 5.2306201743607375), (8.154467247676543, 3.1931804978465412), (5.576946336654584, 4.021666079744872), (5.535589954381583, 6.202445657776281), (7.0036747152372945, 2.6906960628632888), (5.114927899351384, 3.7880349075021194), (6.688974298666592, 5.9691939941587915), (5.565547972400178, 6.927128744275408), (7.380854842207836, 3.6786035367931005), (5.3664099838911685, 5.397983104746935), (5.747582038336503, 3.3960798265749297), (5.312421242931181, 2.931927903515411), (7.406915962273326, 6.282419063291712)}
  35. Zip(Circle[n, 1], n, balloonPoints) → balloons
  36. Zip(Circle[n, 1.1], n, balloonPoints) → balloonOutline
  37. Zip(Circle[n, 1], n, Sequence[BagsCenter + ((2 * cos(n)), sin(n)), n, -6, 6]) → bags
  38. Circle(BagsCenter, 1) → bagArea
  39. Zip(Circle[n, 1.1], n, Sequence[BagsCenter + ((2 * cos(n)), sin(n)), n, -6, 6]) → bagsOutline
  40. Polygon({BucketPoint + (1.1, 1.1), BucketPoint + (1.1, -1.1), BucketPoint + (-1.1, -1.1), BucketPoint + (-1.1, 1.1)}) → bucketOutline
  41. If(numSandbagsStatic > 0, Flatten[{Take[bagStartUnShuffled, bagsTake(1), bagsTake(2)], First[bagStartUnShuffled, bagsTake(3)]}], {}) → bagsAdded
  42. Zip(Segment[BucketPoint, n], n, bagsAdded) → bagStrings_{add}
  43. If(30 - Mod[numBalloonsTotalStatic, 30] < abs(numBalloonsStatic), {Mod[numBalloonsTotalStatic, 30] + 1, 30, abs(numBalloonsStatic) - (30 - Mod[numBalloonsTotalStatic, 30])}, {Mod[numBalloonsTotalStatic, 30] + 1, Mod[numBalloonsTotalStatic, 30] + abs(numBalloonsStatic), 0}) → balloonsTake
  44. If(numBalloonsStatic > 0, Flatten[{Take[balloonStartUnShuffled, balloonsTake(1), balloonsTake(2)], First[balloonStartUnShuffled, balloonsTake(3)]}], {}) → balloonsAdded
  45. Zip(Segment[BucketPoint, n], n, balloonsAdded) → balloonStrings_{add}
  46. If(numBalloonsStatic < 0, Flatten[{Take[balloonStartUnShuffled, balloonsTake(1), balloonsTake(2)], First[balloonStartUnShuffled, balloonsTake(3)]}], {}) → balloonsPopped
  47. Sequence(k + numRandomStart - floor(numMoveClouds), k, -3, 3) → listNumberLine, {6, 7, 8, 9, 10, 11, 12}
  48. Sequence(Segment[(-0.375, (2 * n)), (0.375, (2 * n))], n, -3, 3) → numLineSegs
  49. Sequence((x(TextAlign) + 0.2, (2 * n) + 0.45), n, -3, 3) → numLinePoints
  50. Zip(Text[If[n ≠ numRandomStart - floor(numMoveClouds), n, ""], m, true, true], n, listNumberLine, m, numLinePoints) → textsNumberLine
  51. Zip(Vector[BalloonMid, n], n, balloonsAdded) → balloonVecs
  52. CircleArc(BucketMiddleTop, (x(BucketPoint2) - 0.45, 0.55), (x(BucketPoint1) + 0.5, 0.55)) → bucketArc
  53. Zip(Segment[BucketPoint, n], n, balloonBgEnds) → balloonStrings
  54. Zip(Intersect[bucketArc, n], n, balloonStrings) → balloonStarts
  55. Zip(Intersect[bucketArc, n], n, balloonStrings_{add}) → balloonStart_{add}
  56. Zip(Segment[k, n], k, balloonStart_{add}, n, balloonsAdded) → balloonStringsShort_{add}
  57. Zip(Vector[BalloonMid, n], n, balloonsPopped) → balloonPopVecs
  58. Zip(Vector[BagMid, n], n, bagsAdded) → bagVecs
  59. Zip(Vector[BagMid, k], k, bagDropAnimatePoints) → bagDropVecs
  60. Zip(Translate[balloonPic, Vector[n]], Vector[n], balloonVecs) → balloonImages
  61. Zip(Translate[bangPic, Vector[n]], Vector[n], balloonPopVecs) → popImages
  62. Zip(Translate[bagPic, Vector[n]], Vector[n], bagDropVecs) → bagDropImages
  63. Zip(Translate[bagPic, Vector[n]], Vector[n], bagVecs) → bagImages
  64. Zip(Segment[k, n], k, balloonStarts, n, balloonBgEnds) → balloonStringsShort
  65. Zip(Segment[BucketPoint, n], n, bagBGEnds) → bagStrings

AI 绘图提示语参考

创建一个动态的整数加减法模型,使用气球和沙袋表示正负数。首先画一个边界框,然后在边界内随机放置一些沙袋和气球。沙袋和气球围绕一个中心点旋转,模拟加减操作。气球和沙袋之间有线连接,表示它们之间的关系。最后,通过动画展示沙袋和气球的移动,直观地展示整数加减法的过程。
以上提示语为根据原始绘图命令整理而来,仅供参考。