Geometric Exploration of Triangle Incircle and Pythagorean Theorem
2013-03-19 19:20
This GeoGebra applet provides an interactive geometric exploration of triangle properties, focusing on the incircle and the Pythagorean theorem. Designed for middle school mathematics education, the applet allows students and teachers to investigate fundamental concepts in plane geometry through dynamic visualization and hands-on manipulation.
The applet constructs a rich geometric environment featuring a triangle along with its incircle, perpendicular lines, and midpoints. These foundational geometric objects serve as the basis for exploring deeper mathematical relationships. By integrating rotation transformations and symmetry operations, the applet brings abstract geometric theorems to life, enabling users to see how these principles manifest in concrete visual forms.
One of the central features of this applet is its demonstration of the Pythagorean theorem. Rather than presenting the theorem as a static formula, the applet shows the geometric reasoning behind it through carefully constructed figures and transformations. Students can observe how the squares on the sides of a right triangle relate to one another, building an intuitive understanding that goes beyond algebraic memorization.
The incircle exploration is equally compelling. The applet illustrates how the incircle is tangent to all three sides of the triangle, showing the tangent lines and the points of tangency clearly. Users can examine the relationship between the incenter, the angle bisectors, and the radius of the incircle, gaining insight into why the incircle exists and how its properties connect to the triangle's overall geometry.
Interactivity is a key strength of this applet. Users can drag vertices to reshape the triangle and watch in real time as the incircle, perpendicular lines, and midpoints adjust accordingly. This dynamic behavior allows students to observe geometric invariants, which are properties that remain unchanged even as the shape of the triangle varies. For example, they can verify that the angle bisectors always meet at the incenter, or that certain angle relationships and segment ratios are preserved under transformation.
The applet also incorporates symmetry operations that help students recognize symmetrical properties within triangle geometry. By applying rotations and reflections, learners can explore how certain configurations map onto themselves, reinforcing their understanding of symmetry in mathematical contexts.
This tool is highly suitable for classroom instruction and independent study alike. Teachers can use it to introduce or reinforce lessons on triangle properties, the Pythagorean theorem, and geometric transformations. Students benefit from the visual and interactive approach, which supports deeper conceptual understanding and helps bridge the gap between abstract theorems and their geometric meaning. Overall, this applet serves as a powerful resource for anyone seeking to master the elegant relationships found in plane geometry.
Loading the math board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.0" id="bcbef449-8fa1-47d3-8106-54273c3be580" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1680" height="1020" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.16845238095238096" orientation="1" />
</panes>
<views>
<view id="4" toolbar="0 || 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="1" visible="true" inframe="false" stylebar="true" location="1" size="1664" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="283" window="12,160,250,400" />
<view id="16" visible="false" inframe="true" stylebar="false" location="1" size="150" window="50,50,500,500" />
<view id="32" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="64" visible="false" inframe="true" stylebar="false" 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 , 14 66 68 | 25 52 60 61 || 40 41 42 , 27 28 35 , 6" />
<input show="true" cmd="true" top="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="12"/>
<graphicsSettings javaLatexFonts="false"/>
<consProtColumns col0="true" col1="true" col2="false" col3="true" col4="false" col5="true" col6="true" col7="false"/>
<consProtocol useColors="true" addIcons="false" showOnlyBreakpoints="false"/>
</gui>
<euclidianView>
<size width="1664" height="854"/>
<coordSystem xZero="133.5613541048177" yZero="454.65730656447084" scale="27.51429245335562" yscale="27.514292453355726"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="13" gridType="0"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="1" grid="10"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<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="point" label="A_0">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="numeric" label="disp">
<value val="16.59"/>
<show object="true" label="true"/>
<objColor r="204" g="0" b="255" alpha="0.1"/>
<layer val="0"/>
<labelMode val="3"/>
<slider min="0" max="28" absoluteScreenLocation="true" width="800.0" x="125.0" y="533.0" fixed="true" horizontal="true"/>
<lineStyle thickness="11" type="0" typeHidden="1"/>
<animation step="0.0010" speed="1" type="0" playing="false"/>
<caption val="D點位置"/>
</element>
<element type="numeric" label="scale">
<value val="1.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="-32" y="-1"/>
<labelMode val="2"/>
<slider min="0.1" max="3" absoluteScreenLocation="true" width="600.0" x="28.0" y="85.0" fixed="true" horizontal="true"/>
<lineStyle thickness="8" type="0" typeHidden="1"/>
<animation step="1.0E-4" speed="1" type="0" playing="false"/>
</element>
<element type="point" label="A'">
<show object="true" label="true"/>
<objColor r="255" g="51" b="51" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-30" y="-2"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="9"/>
<pointStyle val="0"/>
<caption val="移動"/>
</element>
<element type="point" label="X">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-21" y="20"/>
<labelMode val="3"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="A"/>
</element>
<element type="point" label="Y">
<show object="true" label="false"/>
<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"/>
<selectionAllowed val="false"/>
<coords x="9.746" y="10.05" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<expression label="B'" exp="A' + (Y - X) * scale" type="point" />
<element type="point" label="B'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="9.746" y="10.05" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<expression label="Z" exp="(x(A_0) + disp, 0)" type="point" />
<element type="point" label="Z">
<show object="true" label="true"/>
<objColor r="127" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-6" y="36"/>
<labelMode val="3"/>
<coords x="16.59" y="0.0" z="1.0"/>
<pointSize val="7"/>
<pointStyle val="0"/>
<caption val="D"/>
</element>
<expression label="D'" exp="A' + (Z - X) * scale" type="point" />
<element type="point" label="D'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="16.59" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Circle">
<input a0="A'" a1="Segment[A', B']"/>
<output a0="h"/>
</command>
<element type="conic" label="h">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<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="-195.987016" A3="0.0" A4="-0.0" A5="-0.0"/>
<eqnStyle style="specific"/>
</element>
<command name="Circle">
<input a0="D'" a1="Segment[D', B']"/>
<output a0="k"/>
</command>
<element type="conic" label="k">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<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="127.385264" A3="0.0" A4="-16.59" A5="-0.0"/>
<eqnStyle style="specific"/>
</element>
<command name="Intersect">
<input a0="h" a1="k" a2="2"/>
<output a0="F"/>
</command>
<element type="point" label="F">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="9.746000000000002" y="-10.049999999999997" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="B'" a1="A'" a2="F" a3="D'"/>
<output a0="poly2" a1="b'" a2="a'" a3="f_1" a4="d'"/>
</command>
<element type="polygon" label="poly2">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="b'">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="10.05" y="-9.746" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a'">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="10.049999999999997" y="9.746000000000002" z="-0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="f_1">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-10.049999999999997" y="6.843999999999998" z="166.72949999999994"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="d'">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-10.05" y="-6.843999999999999" z="166.7295"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="A'" a1="D'"/>
<output a0="i"/>
</command>
<element type="segment" label="i">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="16.59" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Circle">
<input a0="A'" a1="2.5"/>
<output a0="p"/>
</command>
<element type="conic" label="p">
<show object="true" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="4" type="20" 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="-6.25" A3="0.0" A4="-0.0" A5="-0.0"/>
<eqnStyle style="specific"/>
</element>
<command name="Point">
<input a0="p"/>
<output a0="G"/>
</command>
<element type="point" label="G">
<show object="true" label="true"/>
<objColor r="0" g="51" b="204" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="-2.5" y="3.061616997868383E-16" z="1.0"/>
<pointSize val="8"/>
<pointStyle val="2"/>
<caption val="旋轉"/>
</element>
<command name="Segment">
<input a0="G" a1="A'"/>
<output a0="j"/>
</command>
<element type="segment" label="j">
<show object="true" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="3.061616997868383E-16" y="2.5" z="-0.0"/>
<lineStyle thickness="3" type="20" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Angle">
<input a0="D'" a1="A'" a2="G"/>
<output a0="Θ"/>
</command>
<element type="angle" label="Θ">
<value val="3.141592653589793"/>
<show object="false" label="true"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="-30" y="-12"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<command name="Rotate">
<input a0="B'" a1="Θ - 180°" a2="A'"/>
<output a0="B''"/>
</command>
<element type="point" label="B''">
<show object="false" label="false"/>
<condition showObject="isFlip < 0"/>
<objColor r="0" g="102" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="9.746" y="10.05" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="5"/>
</element>
<command name="Rotate">
<input a0="A'" a1="Θ - 180°" a2="A'"/>
<output a0="A''"/>
</command>
<element type="point" label="A''">
<show object="true" label="false"/>
<objColor r="255" g="51" b="51" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-35" y="67"/>
<labelMode val="0"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="9"/>
<pointStyle val="0"/>
</element>
<command name="Rotate">
<input a0="F" a1="Θ - 180°" a2="A'"/>
<output a0="F'"/>
</command>
<element type="point" label="F'">
<show object="true" label="false"/>
<condition showObject="isFlip ≥ 0"/>
<objColor r="0" g="102" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="9.746000000000002" y="-10.049999999999997" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="5"/>
</element>
<command name="Rotate">
<input a0="D'" a1="Θ - 180°" a2="A'"/>
<output a0="D''"/>
</command>
<element type="point" label="D''">
<show object="true" label="false"/>
<objColor r="0" g="102" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="16.59" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="5"/>
</element>
<command name="Polygon">
<input a0="B''" a1="A''" a2="F'" a3="D''"/>
<output a0="poly2'" a1="b''" a2="a''" a3="f'" a4="d''"/>
</command>
<element type="polygon" label="poly2'">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="b''">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="10.05" y="-9.746" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a''">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="10.049999999999997" y="9.746000000000002" z="-0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="f'">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-10.049999999999997" y="6.843999999999998" z="166.72949999999994"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="d''">
<show object="false" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-10.05" y="-6.843999999999999" z="166.7295"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Polygon">
<input a0="B''" a1="A'" a2="D''"/>
<output a0="poly3" a1="d''_1" a2="b''_1" a3="a'_1"/>
</command>
<element type="polygon" label="poly3">
<lineStyle thickness="3" type="0" typeHidden="1"/>
<show object="false" label="false"/>
<condition showObject="isFlip < 0"/>
<objColor r="0" g="0" b="255" alpha="0.15"/>
<layer val="0"/>
<labelMode val="2"/>
</element>
<element type="segment" label="d''_1">
<show object="false" label="true"/>
<condition showObject="isFlip < 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-31" y="19"/>
<labelMode val="2"/>
<coords x="10.05" y="-9.746" z="0.0"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="b''_1">
<show object="false" label="true"/>
<condition showObject="isFlip < 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-39" y="22"/>
<labelMode val="2"/>
<coords x="0.0" y="16.59" z="0.0"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a'_1">
<show object="false" label="true"/>
<condition showObject="isFlip < 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-17" y="42"/>
<labelMode val="2"/>
<coords x="-10.05" y="-6.843999999999999" z="166.7295"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Polygon">
<input a0="A'" a1="F'" a2="D''"/>
<output a0="poly4" a1="d''_2" a2="a'_2" a3="f'_1"/>
</command>
<element type="polygon" label="poly4">
<lineStyle thickness="3" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<condition showObject="isFlip ≥ 0"/>
<objColor r="0" g="0" b="255" alpha="0.15"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="d''_2">
<show object="true" label="true"/>
<condition showObject="isFlip ≥ 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-49" y="28"/>
<labelMode val="2"/>
<coords x="10.049999999999997" y="9.746000000000002" z="-0.0"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a'_2">
<show object="false" label="true"/>
<condition showObject="isFlip ≥ 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-39" y="-21"/>
<labelMode val="2"/>
<coords x="-10.049999999999997" y="6.843999999999998" z="166.72949999999994"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="f'_1">
<show object="true" label="true"/>
<condition showObject="isFlip ≥ 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-10" y="5"/>
<labelMode val="2"/>
<coords x="0.0" y="-16.59" z="0.0"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="OrthogonalLine">
<input a0="A'" a1="b''_1"/>
<output a0="l"/>
</command>
<element type="line" label="l">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-16.59" y="0.0" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
</element>
<command name="Point">
<input a0="l"/>
<output a0="H"/>
</command>
<element type="point" label="H">
<show object="true" label="true"/>
<objColor r="0" g="51" b="204" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="1.720508166969147" z="1.0"/>
<pointSize val="6"/>
<pointStyle val="5"/>
<caption val="反轉"/>
</element>
<expression label="isFlip" exp="Distance[H, B''] - Distance[H, F']" />
<element type="numeric" label="isFlip">
<value val="-2.4611785859708153"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
</element>
<command name="Segment">
<input a0="H" a1="A'"/>
<output a0="m"/>
</command>
<element type="segment" label="m">
<show object="true" label="false"/>
<objColor r="153" g="153" b="153" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="1.720508166969147" y="0.0" z="0.0"/>
<lineStyle thickness="3" type="10" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Angle">
<input a0="D''" a1="A'" a2="B''"/>
<output a0="δ"/>
</command>
<element type="angle" label="δ">
<value val="0.8007535941063547"/>
<show object="true" label="true"/>
<condition showObject="(isFlip < 0) ∧ showangle"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="21" y="-5"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<command name="Angle">
<input a0="B''" a1="D''" a2="A'"/>
<output a0="ζ"/>
</command>
<element type="angle" label="ζ">
<value val="0.9729395780557618"/>
<show object="true" label="true"/>
<condition showObject="(isFlip < 0) ∧ showangle"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="-54" y="-5"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<command name="Midpoint">
<input a0="d''_1"/>
<output a0="I"/>
</command>
<element type="point" label="I">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="4.873" y="5.025" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="a'_1"/>
<output a0="J"/>
</command>
<element type="point" label="J">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="13.168" y="5.025" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="b''_1"/>
<output a0="K"/>
</command>
<element type="point" label="K">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="8.295" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="d''_2"/>
<output a0="L"/>
</command>
<element type="point" label="L">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="4.873000000000001" y="-5.024999999999999" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="a'_2"/>
<output a0="M"/>
</command>
<element type="point" label="M">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="13.168000000000001" y="-5.024999999999999" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="B_0">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<selectionAllowed val="false"/>
<coords x="9.75" y="10.052" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="B"/>
</element>
<command name="Angle">
<input a0="A'" a1="D''" a2="F'"/>
<output a0="θ"/>
</command>
<element type="angle" label="θ">
<value val="0.9729395780557618"/>
<show object="true" label="true"/>
<condition showObject="(isFlip ≥ 0) ∧ showangle"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="27" y="171"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[scale,1] SetValue[G,O] SetValue[H,A'+(0,2)] SetValue[A', (0,0)]"/>
<caption val="重設"/>
</element>
<command name="Line">
<input a0="A'" a1="xAxis"/>
<output a0="b_1"/>
</command>
<element type="line" label="b_1">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="1.0" z="-0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="p" a1="b_1" a2="1"/>
<output a0="O"/>
</command>
<element type="point" label="O">
<show object="false" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.5" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Angle">
<input a0="F'" a1="A'" a2="D''"/>
<output a0="ι"/>
</command>
<element type="angle" label="ι">
<value val="0.8007535941063545"/>
<show object="true" label="true"/>
<condition showObject="(isFlip ≥ 0) ∧ showangle"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="23" y="13"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<expression label="text6" exp=""$ 邊長\times $""/>
<element type="text" label="text6">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<isLaTeX val="true"/>
<font serif="true" size="0" style="0"/>
<absoluteScreenLocation x="27" y="37"/>
</element>
<command name="Textfield">
<input a0="scale"/>
<output a0="inputBox1"/>
</command>
<element type="textfield" label="inputBox1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="74" y="35"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<linkedGeo exp="scale"/>
<length val="5"/>
</element>
<element type="boolean" label="showangle">
<value val="true"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="23" y="126"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="顯示角度"/>
</element>
<expression label="text7" exp=""放大/縮小""/>
<element type="text" label="text7">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<font serif="false" size="0" style="1"/>
<absoluteScreenLocation x="29" y="27"/>
</element>
<element type="point" label="C_0">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<coords x="28.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="C"/>
</element>
<command name="Polygon">
<input a0="A_0" a1="B_0" a2="C_0"/>
<output a0="poly5" a1="c_1" a2="a_0" a3="b_0"/>
</command>
<element type="polygon" label="poly5">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
</element>
<element type="segment" label="c_1">
<show object="true" label="true"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-47" y="-23"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
<coords x="-10.052" y="9.75" z="0.0"/>
<lineStyle thickness="4" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a_0">
<show object="true" label="true"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-36" y="-41"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
<coords x="10.052" y="18.25" z="-281.456"/>
<lineStyle thickness="4" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="b_0">
<show object="true" label="true"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-62" y="51"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
<coords x="0.0" y="-28.0" z="0.0"/>
<lineStyle thickness="4" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Angle">
<input a0="A_0" a1="B_0" a2="C_0"/>
<output a0="μ"/>
</command>
<element type="angle" label="μ">
<value val="1.8374916848499578"/>
<show object="true" label="true"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelOffset x="-4" y="24"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="true"/>
</element>
<command name="Polygon">
<input a0="X" a1="Y" a2="Z"/>
<output a0="poly6" a1="p_1" a2="c_2" a3="n"/>
</command>
<element type="polygon" label="poly6">
<lineStyle thickness="1" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
</element>
<element type="segment" label="p_1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<coords x="-10.05" y="9.746" z="0.0"/>
<lineStyle thickness="1" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="c_2">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<coords x="10.05" y="6.843999999999999" z="-166.7295"/>
<lineStyle thickness="4" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="n">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="-16.59" z="0.0"/>
<lineStyle thickness="1" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Angle">
<input a0="B_0" a1="Z" a2="C_0"/>
<output a0="α"/>
</command>
<element type="angle" label="α">
<value val="4.114896744741141"/>
<show object="true" label="true"/>
<condition showObject="showangle"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<arcSize val="30"/>
<allowReflexAngle val="false"/>
</element>
</construction>
</geogebra>