Exploring nth Roots of Unity via Inversion
2013-12-07 22:01
This applet visually demonstrates the geometric properties of nth roots of unity through the lens of inversion in the complex plane. By applying an inversion transformation, it offers an intuitive and dynamic exploration of how these fundamental complex numbers behave and relate to one another both algebraically and geometrically.
At its core, the applet computes and visualizes the sum of the expression 1/(1-ω) + 1/(1-ω^2) + ... + 1/(1-ω^(n-1)), where ω represents the complex nth roots of unity, i.e., the solutions to the equation x^n - 1 = 0. This sum is not merely an abstract algebraic exercise; rather, it reveals a beautiful geometric pattern that emerges when each term 1/(1-ω^k) is interpreted as the image of a point under inversion mapping.
Through dynamic polygons, vectors, and rays, the applet constructs visual representations that connect the algebraic properties of complex roots with their geometric counterparts. Students can observe how the nth roots of unity are evenly distributed around the unit circle and how inversion transforms these points in predictable and elegant ways. The dynamic nature of the construction allows users to adjust the parameter n and immediately see how the configuration changes, reinforcing the understanding of the underlying mathematical relationships.
The applet serves as a powerful pedagogical tool for students studying complex numbers, particularly those learning about roots of unity, Möbius transformations, or geometric interpretations of complex arithmetic. By making abstract algebraic identities visible and interactive, it helps learners build deeper intuition about why certain results hold and how different areas of mathematics interconnect. The combination of symbolic computation and geometric visualization ensures that users can verify algebraic claims through direct observation, fostering a more robust and memorable understanding of the material.
In collections
複數
Loading the math board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.4" version="4.4.0.0" id="c82be508-f17e-4c14-af35-3cc296c45fa7" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="827" height="650" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.2418379685610641" orientation="1" />
</panes>
<views>
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,1,1" size="400" window="740,350,700,550" />
<view id="4" toolbar="0 59 || 2020 , 2021 , 2022 , 66 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="false" location="1,1" size="300" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 | 1011 || 1008 1009 || 6" visible="false" inframe="false" stylebar="false" location="1,3" size="300" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="816" window="100,100,600,400" />
<view id="2" visible="false" inframe="true" stylebar="true" location="3" size="200" window="980,30,451,595" />
<view id="16" visible="false" inframe="false" stylebar="false" location="1" size="150" window="50,50,500,500" />
<view id="32" visible="false" inframe="false" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="64" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
</views>
<toolbar show="true" items="0 39 59 | 1 501 67 , 5 19 , 72 | 2 15 45 , 18 65 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 | 16 51 64 , 70 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 | 36 46 , 38 49 50 , 71 | 30 29 54 32 31 33 | 17 26 62 73 , 14 66 68 | 25 52 60 61 | 40 41 42 , 27 28 35 , 6" position="1" help="false" />
<input show="true" cmd="true" top="false" />
<dockBar show="true" east="true" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="12"/>
<graphicsSettings javaLatexFonts="false"/>
</gui>
<euclidianView>
<size width="816" height="513"/>
<coordSystem xZero="320.96733993939597" yZero="253.63260687048523" scale="141.1256326263788" yscale="141.12556282859526"/>
<evSettings axes="true" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="26" gridType="0"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="160" g="160" b="160"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="0" grid="10"/>
<axis id="0" show="true" label="" unitLabel="" tickStyle="2" showNumbers="false"/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="2" showNumbers="false"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0"/>
<coordStyle val="0"/>
<angleFromInvTrig val="false"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<element type="conic" label="c">
<show object="true" label="false"/>
<condition showObject="(step ≤ 2) ∨ (4 ≤ step)"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="-1.0" A3="0.0" A4="0.0" A5="0.0"/>
<eqnStyle style="specific"/>
</element>
<element type="numeric" label="n">
<value val="7.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="5" y="0"/>
<labelMode val="2"/>
<slider min="3" max="10" absoluteScreenLocation="true" width="100.0" x="620.0" y="75.0" fixed="false" horizontal="true"/>
<lineStyle thickness="1" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<expression label="θ" exp="(2 * π / n)" />
<element type="numeric" label="θ">
<value val="0.8975979010256552"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
</element>
<expression label="ω" exp="cos(θ) + (ί * sin(θ))" type="point" />
<element type="point" label="ω">
<show object="false" label="false"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.6234898018587336" y="0.7818314824680298" z="1.0"/>
<coordStyle style="complex"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Sequence">
<input a0="ω^(k)" a1="k" a2="1" a3="n"/>
<output a0="rts"/>
</command>
<element type="list" label="rts">
<show object="true" label="false"/>
<condition showObject="showRoots"/>
<objColor r="255" g="255" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="4"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Vector[Element[rts, n], Element[rts, k]]" a1="k" a2="1" a3="n - 1"/>
<output a0="vctrs"/>
</command>
<element type="list" label="vctrs">
<show object="true" label="false"/>
<condition showObject="1 ≤ step ≤ 2 ∨ (step ≥ 5)"/>
<objColor r="255" g="153" b="204" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="conic" label="d">
<show object="true" label="false"/>
<condition showObject="showOneMinusRoots"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="0.0" A3="0.0" A4="-1.0" A5="0.0"/>
<eqnStyle style="specific"/>
</element>
<command name="Sequence">
<input a0="Vector[(-Element[vctrs, k])]" a1="k" a2="1" a3="n - 1"/>
<output a0="vctrs2"/>
</command>
<element type="list" label="vctrs2">
<show object="true" label="false"/>
<condition showObject="3 ≤ step ≤ 5"/>
<objColor r="153" g="204" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="1 - Element[rts, k]" a1="k" a2="1" a3="n - 1"/>
<output a0="oneMinusRoots"/>
</command>
<element type="list" label="oneMinusRoots">
<show object="true" label="false"/>
<condition showObject="showOneMinusRoots"/>
<objColor r="255" g="204" b="51" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="4"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="1 / Element[oneMinusRoots, k]" a1="k" a2="1" a3="n - 1"/>
<output a0="oneOverOneMinusRoots"/>
</command>
<element type="list" label="oneOverOneMinusRoots">
<show object="true" label="false"/>
<condition showObject="4 ≤ step"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="4"/>
<pointStyle val="-1"/>
</element>
<element type="line" label="a">
<show object="true" label="false"/>
<condition showObject="4 ≤ step"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<coords x="1.0" y="0.0" z="-0.5"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<eqnStyle style="implicit"/>
</element>
<element type="numeric" label="dr">
<value val="0.2"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
</element>
<element type="point" label="Off">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="-0.1" y="0.1" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<expression label="text1" exp=""1""/>
<element type="text" label="text1">
<show object="true" label="false"/>
<condition showObject="showRoots"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<startPoint x="1.0754466570880292" y="0.07093351199028669" z="1.0"/>
</element>
<element type="point" label="I">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="1.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Sequence">
<input a0="Text["1-ω^" + (k), I + (1 + dr; π + (k * θ)) + Off, true, true]" a1="k" a2="1" a3="n - 1"/>
<output a0="txtOneMinusRoots"/>
</command>
<element type="list" label="txtOneMinusRoots">
<show object="true" label="false"/>
<condition showObject="showOneMinusRoots"/>
<objColor r="0" g="0" b="204" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="point" label="Off2">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="0.1" y="0.2" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="OffAnchor">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="-5.7" y="-0.3" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<expression label="Anchor" exp="Corner[3] + OffAnchor" type="point" />
<element type="point" label="Anchor">
<show object="false" label="true"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.18516962631573" y="1.5042982558712663" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="vector" label="dy">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<coords x="0.0" y="-0.4" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
</element>
<command name="Sequence">
<input a0="Text["\frac{1}{1-ω^" + (k) + "}", Anchor + ((k - 1) * dy) + Off2, true, true]" a1="k" a2="1" a3="n - 1"/>
<output a0="txtOneOverOneMinusRoots"/>
</command>
<element type="list" label="txtOneOverOneMinusRoots">
<show object="true" label="false"/>
<condition showObject="4 ≤ step"/>
<objColor r="204" g="102" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="numeric" label="step">
<value val="5.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="1"/>
<labelOffset x="8" y="0"/>
<labelMode val="2"/>
<slider min="0" max="5" absoluteScreenLocation="true" width="100.0" x="618.0" y="40.0" fixed="false" horizontal="true"/>
<lineStyle thickness="1" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<element type="button" label="button1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="576" y="24"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[step,step-1]"/>
<file name="/geogebra/gui/images/go-previous.png"/>
</element>
<element type="button" label="button2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="736" y="24"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[step,step+1]"/>
<file name="/geogebra/gui/images/go-next.png"/>
</element>
<command name="Polygon">
<input a0="rts"/>
<output a0="poly1" a1="" a2="" a3="" a4="" a5="" a6="" a7=""/>
</command>
<element type="polygon" label="poly1">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<condition showObject="showRoots"/>
<objColor r="153" g="51" b="0" alpha="0.05"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
</element>
<element type="point" label="O">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Sequence">
<input a0="Segment[O, Element[rts, k]]" a1="k" a2="1" a3="n"/>
<output a0="rays1"/>
</command>
<element type="list" label="rays1">
<show object="true" label="false"/>
<condition showObject="0 ≤ step ≤ 1"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="20" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="conic" label="d1">
<show object="true" label="false"/>
<condition showObject="showRootsMinusOne"/>
<objColor r="102" g="0" b="153" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="0.0" A3="0.0" A4="1.0" A5="0.0"/>
<eqnStyle style="specific"/>
</element>
<command name="Sequence">
<input a0="Vector[O, Element[rts, k] - 1]" a1="k" a2="1" a3="n - 1"/>
<output a0="vctrs12"/>
</command>
<element type="list" label="vctrs12">
<show object="true" label="false"/>
<condition showObject="showRootsMinusOne"/>
<objColor r="255" g="153" b="204" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="showRootsMinusOne" exp="(2 ≤ step) ∧ (step ≤ 3)" />
<element type="boolean" label="showRootsMinusOne">
<value val="false"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
</element>
<command name="Sequence">
<input a0="Text["ω^" + (k) + "-1", (-I) + (1 + dr; (k * θ)) + Off, true, true]" a1="k" a2="1" a3="n - 1"/>
<output a0="txtRootsMinusOne"/>
</command>
<element type="list" label="txtRootsMinusOne">
<show object="true" label="false"/>
<condition showObject="showRootsMinusOne"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0="Segment[Element[oneOverOneMinusRoots, k], Anchor + ((k - 1) * dy) + (0.5, 0)]" a1="k" a2="1" a3="n - 1"/>
<output a0="pointers"/>
</command>
<element type="list" label="pointers">
<show object="true" label="false"/>
<condition showObject="4 ≤ step"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<lineStyle thickness="2" type="20" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="button" label="button3">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="736" y="60"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[n,n+1]"/>
<font serif="false" sizeM="2.0" size="12" style="0"/>
<file name="/geogebra/gui/images/go-next.png"/>
</element>
<element type="button" label="button4">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="576" y="58"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[n,n-1]"/>
<font serif="false" sizeM="2.0" size="12" style="0"/>
<file name="/geogebra/gui/images/go-previous.png"/>
</element>
<expression label="showRoots" exp="(step ≤ 2) ∨ (step ≥ 5)" />
<element type="boolean" label="showRoots">
<value val="true"/>
<show object="false" label="true"/>
<condition showObject="(step ≤ 2) ∨ (4 ≤ step)"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
</element>
<expression label="showOneMinusRoots" exp="(3 ≤ step) ∧ (step ≤ 5)" />
<element type="boolean" label="showOneMinusRoots">
<value val="true"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
</element>
<command name="Sequence">
<input a0="Text["ω^" + (k), (1 + (0.6 * dr); (k * θ)) + Off, true, true]" a1="k" a2="1" a3="n - 1"/>
<output a0="txtRoots"/>
</command>
<element type="list" label="txtRoots">
<show object="true" label="false"/>
<condition showObject="(step ≤ 2) ∨ (step ≥ 5)"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<command name="Sequence">
<input a0=""\frac{1}{1-ω^" + (k) + "}"" a1="k" a2="1" a3="n - 1"/>
<output a0="terms"/>
</command>
<element type="list" label="terms">
<show object="false" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<expression label="expr" exp=""\frac{" + (n - 1) + "}{2}=" + (Element[terms, 1]) + "" + (Sum[Sequence["+" + (Element[terms, k]), k, 2, n - 1]]) + """ />
<element type="text" label="expr">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<startPoint x="0.5529304535852144" y="0.14620035135338771" z="1.0"/>
</element>
<element type="point" label="OffExpr">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="1.0" y="0.3" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Text">
<input a0="expr" a1="Corner[1] + OffExpr" a2="true" a3="true"/>
<output a0="txtExpr"/>
</command>
<element type="text" label="txtExpr">
<show object="true" label="false"/>
<condition showObject="step ≥ 4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="1"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.0" size="0" style="0"/>
<startPoint x="-1.2814235369401965" y="-1.5449343117642353" z="1.0"/>
</element>
<expression label="text2" exp=""方根次數""/>
<element type="text" label="text2">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<absoluteScreenLocation x="517" y="75"/>
</element>
<expression label="text3" exp=""顯示步驟""/>
<element type="text" label="text3">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<absoluteScreenLocation x="516" y="43"/>
</element>
</construction>
</geogebra>