Geometric Derivation of the Second Binomial Formula
Loading the math board and drawing, please wait…
In collections
Binomische Formeln
This GeoGebra example demonstrates the geometric derivation of the second binomial formula (a-b)² = a² - 2ab + b² using area models. Key mathematical concepts include perfect square formulas, area-based proofs, and polynomial operations. Construction highlights: Using Polygon to draw squares representing a² and b², constructing two rectangles of area ab with Rectangle/Polygon tools, displaying derivation steps via Textfield, and providing InputBox for students to practice (5-h)² and (2c-3d)² calculations. Includes a sorting exercise to help students understand the geometric reasoning process. Designed for grade 7-8 students to comprehend the geometric meaning of binomial formulas and develop algebraic-visual thinking.
GeoGebra Commands & Parameters
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {6, 2, 4, 4, 7, 6, 4, 1, 7, 3}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxPolyLine(PosSB, Corner[txt011, 2] + (-0.5, 0.1), Corner[txt011, 1] + (-0.1, 0.1), Corner[txt011, 4] + (-0.1, 0.1), Corner[txt011, 3] + (0, 0.1), Corner[txt011, 2] + (0, 0.5), PosSB) → sb01Textfield(input023) → InputBox023PolyLine(PosSB, Corner[txt021, 2] + (-0.5, 0.1), Corner[txt021, 1] + (-0.1, 0.1), Corner[txt021, 4] + (-0.1, 0.1), Corner[txt021, 3] + (0, 0.1), Corner[txt021, 2] + (0, 0.5), PosSB) → sb02Polygon((0.16, 7.389999999999999), (12.139999999999993, 7.389999999999999), (12.139999999999993, 3.389999999999999), (0.16, 3.389999999999999)) → polyLight2, r, s, t, aPointIn(polyLight2) → LightCircle(Light, radius) → CTaschenlampe1Circle(Light, radius) → CTaschenlampe2Circle(MPTaschenlampe, 2.5) → CTaschenlampe3Line(MPTaschenlampe, Light) → GTaschenlampeIntersect(CTaschenlampe3, GTaschenlampe, 2) → PosTL1Intersect(CTaschenlampe3, GTaschenlampe, 1) → PosTL2Rotate(PosTL2 + (0.2 * UnitOrthogonalVector[GTaschenlampe]), -67°, MPTaschenlampe) → PosImgTaschenlampe2Tangent(PosTL2, CTaschenlampe1) → tangent1, tangent2PolyLine(PosSB, Corner[txt051, 2] + (0, 0.5), Corner[txt051, 2] + (0, 0), Corner[txt051, 1] + (-0.1, 0), Corner[txt051, 4] + (-0.1, 0.1), Corner[txt051, 3] + (0, 0.1), Corner[txt051, 2] + (0, 1), PosSB) → sb05Midpoint(PosA, PosC) → MPQuadratSegment(MPQuadrat + (0.45, 0.45), PosC) → Diagonale1Point(Diagonale1) → PosPSegment(PosA + (0, If[step ≟ 11 ∨ step ≟ 12 ∧ PosP ≟ PosC, (-disCap1), (-disCap2)]), PosB + (0, If[step ≟ 11 ∨ step ≟ 12 ∧ PosP ≟ PosC, (-disCap1), (-disCap2)])) → segCap111Segment(PosB + (If[step ≟ 11 ∨ step ≟ 12 ∧ PosP ≟ PosC, disCap1, disCap2 + 0.7], 0), PosC + (If[step ≟ 11 ∨ step ≟ 12 ∧ PosP ≟ PosC, disCap1, disCap2 + 0.7], 0)) → segCap112Text("\textsf{a}", Midpoint[segCap112], false, true, 1, 0) → Cap112Segment(PosA + (0, (-disCap1)), PosP1 + (0, (-disCap1))) → segCap121Segment(PosB + (0, (-disCap1)), PosP1 + (0, (-disCap1))) → segCap122Segment(PosB + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap123Segment(PosC + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap124Text("\textsf{a \(-\) b}", Midpoint[segCap123], false, true, 1, 0) → Cap123Text("\textsf{b}", Midpoint[segCap124], false, true, 1, 0) → Cap124Text("\textsf{a}", Midpoint[segCap111] + (0, 0.05), false, true, 0, -1) → Cap111Text("\textsf{a \(-\) b}", Midpoint[segCap121] + (0, 0.05), false, true, 0, -1) → Cap121Text("\textsf{b}", Midpoint[segCap122] + (0, 0.05), false, true, 0, -1) → Cap122Segment(PosP1, PosP1 + (sidelength + 4, 0)) → segR1Point(segR1) → PosR1Polygon(PosR1, PosR1 + (2.049999999999999, 0), PosR1 + (2.049999999999999, 0) + (0, sidelength), PosR1 + (0, sidelength)) → polyR1, f, g, h, bSegment(PosP4, PosP4 + (sidelength + 4, 0)) → segR2Point(segR2) → PosR2Polygon(PosR2, PosR2 + (sidelength, 0), PosR2 + PosC - PosP2 + (sidelength, 0), PosR2 + PosC - PosP2) → polyR2, posr2, i, j, kPolygon(PosDD1, PosDD1 + (-0.85, -0.35), PosDD1 + (0.85, -0.35), PosDD1 + (0.85, 0.35), PosDD1 + (-0.85, 0.35), PosDD1 + (-0.85, -0.35)) → polyDD1, posdd1, l, m, n, p, qText("\textsf{(a \(-\) b)²}", PosDD1 + (0, 0.1), false, true, 0, 0) → txtDD1PolyLine(PosSB, Corner[txt191, 2] + (0, 1), Corner[txt191, 2] + (0, 0), Corner[txt191, 1] + (-0.1, 0), Corner[txt191, 4] + (-0.1, 0.1), Corner[txt191, 3] + (0, 0.1), Corner[txt191, 2] + (0, 1.75), PosSB) → sb19PolyLine(PosSB, Corner[txt201, 2] + (0, 0.75), Corner[txt201, 2] + (0, 0), Corner[txt201, 1] + (-0.1, 0), Corner[txt201, 4] + (-0.1, 0.1), Corner[txt201, 3] + (0, 0.1), Corner[txt201, 2] + (0, 1.5), PosSB) → sb20Text("\textsf{\colorbox{white}{a \cdot b}}", PosR1 + (0.5 * (PosB - PosP1)) + (0.5 * (PosP2 - PosB)), false, true, 0, 0) → CapR1Text("\textsf{\colorbox{white}{a \cdot b}}", PosR2 + (0.5 * (PosP1 - PosA)) + (0.5 * (PosC - PosP2)), false, true, 0, 0) → CapR2PolyLine(PosR2, PosR2 + PosP1 - PosA, PosR1) → PL20PolyLine(PosR3 + {(0, 0), PosP2 - PosP, PosC - PosP, PosP3 - PosP, (0, 0)}) → PLB4RPolyLine(PosSB + (0.15, -0.75), Corner[txt211, 2] + (0, 0.75), Corner[txt211, 2] + (0, 0), Corner[txt211, 1] + (-0.1, 0), Corner[txt211, 4] + (-0.1, 0.1), Corner[txt211, 3] + (0, 0.1), Corner[txt211, 2] + (0, 1.5), PosSB + (0.15, -0.75)) → sb21Textfield(input021) → InputBox021Textfield(input022) → InputBox022Sort({"$\textsf{\phantom{a²b²}\vphantom{+\(-\)b²}}$", "$\textsf{a²\phantom{b}\vphantom{+\(-\)b²}}$", "$\textsf{b²\phantom{b}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\)ab\phantom{²}\vphantom{+\(-\)b²}}$", "$\textsf{ba\phantom{²}\vphantom{+\(-\)b²}}$"}, OrderDD061) → dropdown061SelectedIndex(dropdown061) → index061Sort({"$\textsf{\phantom{a²b²}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) ab\phantom{²}\vphantom{+\(-\)b²}}$", "$\textsf{+ b²\phantom{b}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) a²\phantom{b²}\vphantom{+\(-\)b²}}$", "$\textsf{+ ab\phantom{²}\vphantom{+\(-\)b²}}$"}, OrderDD062) → dropdown062SelectedIndex(dropdown062) → index062Sort({"$\textsf{\phantom{a²b²}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) ba\phantom{²}\vphantom{+\(-\)b²}}$", "$\textsf{+ ab\phantom{²}\vphantom{+\(-\)b²}}$", "$\textsf{+ a²\phantom{b}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) b²\phantom{b}\vphantom{+\(-\)b²}}$"}, OrderDD063) → dropdown063SelectedIndex(dropdown063) → index063Sort({"$\textsf{\phantom{a²b²}\vphantom{+\(-\)b²}}$", "$\textsf{+ b²\phantom{a}\vphantom{+\(-\)b²}}$", "$\textsf{+ ab\phantom{²}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) b²\phantom{b}\vphantom{+\(-\)b²}}$", "$\textsf{\(-\) ba\phantom{²}\vphantom{+\(-\)b²}}$"}, OrderDD064) → dropdown064SelectedIndex(dropdown064) → index064PathParameter(PosP) → parPJoin({{1}, Shuffle[2…5]}) → OrderDD161Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD161) → dropdown161SelectedIndex(dropdown161) → index161Join({{1}, Shuffle[2…5]}) → OrderDD162Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD162) → dropdown162SelectedIndex(dropdown162) → index162Join({{1}, Shuffle[2…5]}) → OrderDD191Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD191) → dropdown191SelectedIndex(dropdown191) → index191Join({{1}, Shuffle[2…5]}) → OrderDD192Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD192) → dropdown192SelectedIndex(dropdown192) → index192PointIn(polyLight2) → Light08Circle(Light08, radius) → CTaschenlampe081If(correct061 ∧ correct062 ∧ correct063, 4, correct061 ∧ correct062, 3, correct061, 2, 1) → step6CircleArc(Midpoint[PosCalc11, PosCalc14] + (0, dis6), PosCalc14, PosCalc11) → arc062CircleArc(Midpoint[PosCalc11, PosCalc13] + (0, dis6), PosCalc13, PosCalc11) → arc061If(IsInRegion[Corner[txtDD1, 1], Bereich1(1)] ∧ IsInRegion[Corner[txtDD1, 3], Bereich1(1)], 1, IsInRegion[Corner[txtDD1, 1], Bereich2(1)] ∧ IsInRegion[Corner[txtDD1, 3], Bereich2(1)], 2, IsInRegion[Corner[txtDD1, 1], Bereich3(1)] ∧ IsInRegion[Corner[txtDD1, 3], Bereich3(1)], 3, IsInRegion[Corner[txtDD1, 1], Bereich4(1)] ∧ IsInRegion[Corner[txtDD1, 3], Bereich4(1)], 4, NaN) → DragDrop14Circle(PointListMinus(2), radius) → sol031PolyLine(PosSB, Corner[txt041, 2] + (-0.5, 0.1), Corner[txt041, 1] + (-0.1, 0.1), Corner[txt041, 4] + (-0.1, 0.1), Corner[txt041, 3] + (0, 0.1), Corner[txt041, 2] + (0, 0.5), PosSB) → sb04PolyLine(PosSB, Corner[txt061, 2] + (-0.5, 0.1), Corner[txt061, 1] + (-0.1, 0.1), Corner[txt061, 4] + (-0.1, 0.1), Corner[txt061, 3] + (0, 0.1), Corner[txt061, 2] + (0, 0.5), PosSB) → sb06Mirror(CircleArc[Midpoint[PosCalc12, PosCalc13] + (0, dis6), PosCalc13, PosCalc12], SpiegelGerade) → arc063Mirror(CircleArc[Midpoint[PosCalc12, PosCalc14] + (0, dis6), PosCalc14, PosCalc12], SpiegelGerade) → arc064Text("\textsf{(a \(-\) b)²}", Midpoint[PosA, PosP] + (0, 0.1), false, true, 0, 0) → txt152Text("\textsf{\bold{Zieh mich!}}", PosP + (0.4, 0.3), false, true, 1, 0) → CapP12Segment(PosP + (-0.25, -0.25), PosP + (-0.75, -0.75)) → arrow12Textfield(input024) → InputBox024Textfield(input091) → InputBox091Text("\textsf{\bold{Zieh mich!}}", (11.5, 3.5) + (0, 1.25), false, true, 0, 0) → CapDD14Segment(Midpoint[Corner[CapDD14, 1], Corner[CapDD14, 2]], Midpoint[Corner[CapDD14, 1], Corner[CapDD14, 2]] + (0, -0.34)) → arrowDD14PolyLine(PosSB, Corner[txt071, 2] + (0, 0.25), Corner[txt071, 2] + (0, 0), Corner[txt071, 1] + (-0.1, 0), Corner[txt071, 4] + (-0.1, 0.1), Corner[txt071, 3] + (0, 0.1), Corner[txt071, 2] + (0, 0.75), PosSB) → sb07PolyLine(PosSB, Corner[txt031, 2] + (0, 0.25), Corner[txt031, 2] + (0, 0), Corner[txt031, 1] + (-0.1, 0), Corner[txt031, 4] + (-0.1, 0.1), Corner[txt031, 3] + (0, 0.1), Corner[txt031, 2] + (0, 0.75), PosSB) → sb03Circle(Light08, radius) → CTaschenlampe082Line(MPTaschenlampe, Light08) → GTaschenlampe08Intersect(CTaschenlampe3, GTaschenlampe08, 2) → PosTL081Intersect(CTaschenlampe3, GTaschenlampe08, 1) → PosTL082Rotate(PosTL082 + (0.2 * UnitOrthogonalVector[GTaschenlampe08]), -67°, MPTaschenlampe) → PosImgTaschenlampe082Tangent(PosTL082, CTaschenlampe081) → tangent081, tangent082Circle(PointList08(2) + (0.1, 0), radius) → sol081PolyLine(PosSB, Corner[txt082, 2] + (0, 0.25), Corner[txt082, 2] + (0, 0), Corner[txt082, 1] + (-0.1, 0), Corner[txt082, 4] + (-0.1, 0.1), Corner[txt082, 3] + (0, 0.1), Corner[txt082, 2] + (0, 0.75), PosSB) → sb08PolyLine(PosSB, Corner[txt092, 2] + (0, 0.25), Corner[txt092, 2] + (0, 0), Corner[txt092, 1] + (-0.1, 0), Corner[txt092, 4] + (-0.1, 0.1), Corner[txt092, 3] + (0, 0.1), Corner[txt092, 2] + (0, 0.75), PosSB) → sb09PolyLine(PosSB, Corner[txt112, 2] + (0, 0.25), Corner[txt112, 2] + (0, 0), Corner[txt112, 1] + (-0.1, 0), Corner[txt112, 4] + (-0.1, 0.1), Corner[txt112, 3] + (0, 0.1), Corner[txt112, 2] + (0, 0.75), PosSB) → sb11PolyLine(PosSB, Corner[txt121, 2] + (0, 0.25), Corner[txt121, 2] + (0, 0), Corner[txt121, 1] + (-0.1, 0), Corner[txt121, 4] + (-0.1, 0.1), Corner[txt121, 3] + (0, 0.1), Corner[txt121, 2] + (0, 0.75), PosSB) → sb12PolyLine(PosSB, Corner[txt131, 2] + (0, 0.25), Corner[txt131, 2] + (0, 0), Corner[txt131, 1] + (-0.1, 0), Corner[txt131, 4] + (-0.1, 0.1), Corner[txt131, 3] + (0, 0.1), Corner[txt131, 2] + (0, 0.75), PosSB) → sb13PolyLine(PosSB, Corner[txt141, 2] + (0, 0.25), Corner[txt141, 2] + (0, 0), Corner[txt141, 1] + (-0.1, 0), Corner[txt141, 4] + (-0.1, 0.1), Corner[txt141, 3] + (0, 0.1), Corner[txt141, 2] + (0, 0.75), PosSB) → sb14PolyLine(PosSB, Corner[txt151, 2] + (0, 0.25), Corner[txt151, 2] + (0, 0), Corner[txt151, 1] + (-0.1, 0), Corner[txt151, 4] + (-0.1, 0.1), Corner[txt151, 3] + (0, 0.1), Corner[txt151, 2] + (0, 0.75), PosSB) → sb15PolyLine(PosSB, Corner[txt161, 2] + (0, 0.75), Corner[txt161, 2] + (0, 0), Corner[txt161, 1] + (-0.1, 0), Corner[txt161, 4] + (-0.1, 0.1), Corner[txt161, 3] + (0, 0.1), Corner[txt161, 2] + (0, 1.25), PosSB) → sb16Sequence(PosQ4 + (k / 20 * (PosQ1 - PosQ4)), k, 0, 20) → PointsP11Point(PointsP11) → PosP11Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\↓\end{array}}}", PosP11 + (-0.25, 0), false, true, 1, -1) → CapZiehMich11Segment(PosQ4 + (0, disQ1), PosQ34 + (0, disQ1)) → segQ111Segment(PosQ3 + (0, disQ1), PosQ34 + (0, disQ1)) → segQ112Segment(PosQ3 + (0, If[step ≟ 12, 0, 0.65] + disQ1), PosQ4 + (0, If[step ≟ 12, 0, 0.65] + disQ1)) → segQ113Segment(PosQ4 + ((-disQ1), 0), PosQ41 + ((-disQ1), 0)) → segQ114Segment(PosQ1 + ((-disQ1), 0), PosQ41 + ((-disQ1), 0)) → segQ115Segment(PosQ1 + (If[step ≟ 12, 0, -1.65] - disQ1, 0), PosQ4 + (If[step ≟ 12, 0, -1.65] - disQ1, 0)) → segQ116Text("\textsf{(a \(-\) b)}", Midpoint[segQ111] + (0, 0.35), false, true, 0, 0) → CapQ111Text("\textsf{b}", Midpoint[segQ112] + (0, 0.35), false, true, 0, 0) → CapQ112Text("\textsf{a}", Midpoint[segQ113] + (0, 0.35), false, true, 0, 0) → CapQ113Text("\textsf{(a \(-\) b)}", Midpoint[segQ114] + (0.1, 0), false, true, -1, 0) → CapQ114Text("\textsf{b}", Midpoint[segQ115] + (0, 0), false, true, -1, 0) → CapQ115Text("\textsf{a}", Midpoint[segQ116] + (0, 0), false, true, -1, 0) → CapQ116Sequence(PosQ41 + (k / 20 * (PosQ23 - PosQ41)) + (dimQ / 2, ((-(1 - parQ)) * dimQ / 2)), k, 0, 25) → PointsP13Point(PointsP13) → PosP13Reverse(Sequence[PosQM + (k / 20 * (PosQ2 - PosQ12)) + (((1 - parQ) * dimQ / 2), ((-(1 - parQ)) * dimQ / 2)), k, 0, 60]) → PointsP14Point(PointsP14) → PosP14Sequence(Midpoint[PosQ12, PosQ3] + (k / 20 * (PosQ2 - PosQ12)), k, 0, 60) → PointsP15Point(PointsP15) → PosP15If(step ≟ 2, correct021 ∧ correct022 ∧ correct023 ∧ correct024, step ≟ 17, PosR1 ≟ Point[segR1, 1], step ≟ 18, PosR2 ≟ Point[segR2, 1], step ≟ 19, correct191 ∧ correct192, step ≟ 3, correct031 ∧ validate ∨ showsolution, step ≟ 8, correct081 ∧ validate08 ∨ showsolution08, step ≟ 6, step ≟ 20, sliderR3 ≟ 1, step ≟ 11, PosP11 ≟ PosQ1, step ≟ 14, correct141 ∧ IndexOf[PosP14, PointsP14] ≟ Length[PointsP14], step ≟ 15, IndexOf[PosP15, PointsP15] ≟ Length[PointsP15], step ≟ 4, PosP041 ≟ PosDD041 ∧ PosP042 ≟ PosDD042, correct06, true, step ≟ 9, correct091, step ≟ 13, IndexOf[PosP13, PointsP13] ≟ Length[PointsP13], step ≟ 16, correct16) → clickableBtnNextText("\textsf{\bold{\begin{array}{c}Zieh mich!\\→\end{array}}}", PosP13 + (dimQ / 2 - 0.25, 0), false, true, 1, 0) → CapZiehMich13Text("\textsf{a \cdot b}", PosP13 + (0, 0.05), false, true, 0, 0) → Cap131Segment(PosQ41, PosQ23) → segQ131Textfield(input141) → InputBox141Text("\textsf{a \cdot b}", Midpoint[PosQ34, PosQ2], false, true, 0, 0) → CapQ141Text("\textsf{b²}", PosP14 + (0, 0.1), false, true, 0, 0) → CapQ142Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\←\end{array}}}", PosP14 + (0, ((1 - parQ) * dimQ / 2) + 0.5), false, true, 0, 0) → CapZiehMich14PolyLine(PosSB, Corner[txt142, 2] + (0, 0.25), Corner[txt142, 2] + (0, 0), Corner[txt142, 1] + (-0.1, 0), Corner[txt142, 4] + (-0.1, 0.1), Corner[txt142, 3] + (0, 0.1), Corner[txt142, 2] + (0, 0.75), PosSB) → sb142Text("\textsf{a \cdot b}", PosP15, false, true, 0, 0) → CapQ151Text("\textsf{\textcolor{#50c1ce}{\bold{Zieh mich!}}", Midpoint[ParkP041, ParkP042] + (0, heightDD04 + 0.5), false, true, 0, 0) → CapZiehMich04Text("\textsf{1. Binomische Formel\vphantom{g}}", PosP041 + (0, 0.05), false, true, 0, 0) → txtDD041Text("\textsf{2. Binomische Formel\vphantom{g}}", PosP042 + (0, 0.05), false, true, 0, 0) → txtDD042Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\→\end{array}}}", PosP15 + (0.65, 0), false, true, 1, 0) → CapZiehMich15IndexOf(PosP14, PointsP14) → indexP14PolyLine(PosSB, Corner[txt102, 2] + (0, 0.5), Corner[txt102, 2] + (0, 0), Corner[txt102, 1] + (-0.1, 0), Corner[txt102, 4] + (-0.1, 0.1), Corner[txt102, 3] + (0, 0.1), Corner[txt102, 2] + (0, 0.75), PosSB) → sb10
AI Drawing Prompt Reference
Please draw a geometric derivation of (a-b)^2 = a^2 - 2ab + b^2. The figure should include two squares representing a^2 and b^2, and two rectangles each with area ab. The rectangles should be connected to the squares to form a complete area model. Squares and rectangles should be labeled with text such as "a^2", "b^2", "a*b". The figure should clearly show the expansion and combination process to help understand the formula. The construction order should be: first draw the two squares, then the two rectangles, then connect the parts, and finally add text labels.
The prompt above was compiled from the original drawing commands and is for reference only.