勾股定理的图形分割证明
2017-06-12 17:28
本范例通过图形分割与面积重组的方法,直观地演示了勾股定理的几何证明。利用GeoGebra的线段、多边形、旋转和镜像等几何构造工具,将直角三角形及其边长构成的正方形进行分割与变换,展示了直角三角形两直角边平方和等于斜边平方的经典结论。适合用于初中几何教学,帮助学生深入理解勾股定理的面积证明原理及几何变换的应用。
所属专题
我的第一个绘本
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.355.0" id="87A2AE33-8412-4AC9-AA56-C6C6E98F3042" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1096" height="705" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.2572992700729927" orientation="1" />
</panes>
<views>
<view id="512" toolbar="0 | 1 501 5 19 , 67 | 2 15 45 18 , 7 37 | 514 3 9 , 13 44 , 47 | 16 | 551 550 11 , 20 22 21 23 , 55 56 57 , 12 | 69 | 510 511 , 512 513 | 533 531 , 534 532 , 522 523 , 537 536 , 535 | 521 520 | 36 , 38 49 560 | 571 30 29 570 31 33 | 17 | 540 40 41 42 , 27 28 35 , 6 , 502" visible="false" inframe="false" stylebar="false" location="1,1,1" size="500" window="100,100,600,400" />
<view id="4" toolbar="0 || 2020 , 2021 , 2022 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="true" location="1,1" size="300" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 || 1008 | 1009 || 6" visible="false" inframe="false" stylebar="true" location="1,3" size="300" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="806" window="100,100,600,400" />
<view id="2" visible="true" inframe="false" stylebar="false" location="3" size="282" window="100,100,250,400" />
<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" toolbar="0" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="128" visible="false" inframe="true" stylebar="false" location="1" size="480" window="50,50,500,500" />
<view id="4097" visible="false" inframe="false" stylebar="true" location="1" size="217" window="290,222,700,550" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="43" visible="false" inframe="false" stylebar="false" location="1" size="450" 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="algebra" />
<dockBar show="false" east="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="16"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="806" height="652"/>
<coordSystem xZero="157.36909532421248" yZero="500.8444548869568" scale="1.0133891287091712" yscale="1.0133891287091694"/>
<evSettings axes="false" grid="true" gridIsBold="false" pointCapturing="1" rightAngleStyle="1" checkboxSize="26" 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="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<algebraView>
<collapsed val="6"/>
</algebraView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="3" spreadsheet="0"/>
<coordStyle val="0"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="勾股定理(圖形分割) Pythagorean Theorem" author="" date="">
<element type="numeric" label="k">
<value val="8.55"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="0" max="13" absoluteScreenLocation="true" width="300" x="319" y="26" fixed="true" horizontal="true" showAlgebra="true"/>
<lineStyle thickness="10" type="0" typeHidden="1"/>
<animation step="0.01" speed="1" type="0" playing="false"/>
</element>
<command name="If">
<input a0="k ≤ 0" a1="0" a2="If[k ≥ 1, 1, k - 0]"/>
<output a0="k1"/>
</command>
<element type="numeric" label="k1">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 1" a1="0" a2="If[k ≥ 2, 1, k - 1]"/>
<output a0="k2"/>
</command>
<element type="numeric" label="k2">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 2" a1="0" a2="If[k ≥ 3, 1, k - 2]"/>
<output a0="k3"/>
</command>
<element type="numeric" label="k3">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 3" a1="0" a2="If[k ≥ 4, 1, k - 3]"/>
<output a0="k4"/>
</command>
<element type="numeric" label="k4">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 4" a1="0" a2="If[k ≥ 5, 1, k - 4]"/>
<output a0="k5"/>
</command>
<element type="numeric" label="k5">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 5" a1="0" a2="If[k ≥ 6, 1, k - 5]"/>
<output a0="k6"/>
</command>
<element type="numeric" label="k6">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 6" a1="0" a2="If[k ≥ 7, 1, k - 6]"/>
<output a0="k7"/>
</command>
<element type="numeric" label="k7">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 7" a1="0" a2="If[k ≥ 8, 1, k - 7]"/>
<output a0="k8"/>
</command>
<element type="numeric" label="k8">
<value val="1"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 8" a1="0" a2="If[k ≥ 9, 1, k - 8]"/>
<output a0="k9"/>
</command>
<element type="numeric" label="k9">
<value val="0.5500000000000007"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 9" a1="0" a2="If[k ≥ 10, 1, k - 9]"/>
<output a0="k10"/>
</command>
<element type="numeric" label="k10">
<value val="0"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 10" a1="0" a2="If[k ≥ 11, 1, k - 10]"/>
<output a0="k11"/>
</command>
<element type="numeric" label="k11">
<value val="0"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 11" a1="0" a2="If[k ≥ 12, 1, k - 11]"/>
<output a0="k12"/>
</command>
<element type="numeric" label="k12">
<value val="0"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<command name="If">
<input a0="k ≤ 12" a1="0" a2="If[k ≥ 13, 1, k - 12]"/>
<output a0="k13"/>
</command>
<element type="numeric" label="k13">
<value val="0"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<element type="point" label="A">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="-28" y="30"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="180" y="100" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="B">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="9" y="12"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="300" y="100" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="B"/>
<output a0="f"/>
</command>
<element type="segment" label="f">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0" y="120" z="-12000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Rotate">
<input a0="B" a1="90°" a2="A"/>
<output a0="B'"/>
</command>
<element type="point" label="B'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="180" y="220" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="B'"/>
<output a0="g"/>
</command>
<element type="segment" label="g">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-120" y="0" z="21600"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Point">
<input a0="g"/>
<output a0="C"/>
</command>
<element type="point" label="C">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="-19" y="-10"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="180" y="180" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="C"/>
<output a0="h"/>
</command>
<element type="segment" label="h">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-80" y="0" z="14400"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="C" a1="B"/>
<output a0="i"/>
</command>
<element type="segment" label="i">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="80" y="120" z="-36000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Polygon">
<input a0="C" a1="B" a2="4"/>
<output a0="poly1" a1="j" a2="l" a3="m" a4="n" a5="D" a6="E"/>
</command>
<element type="polygon" label="poly1">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<element type="segment" label="j">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="false"/>
<coords x="80" y="120" z="-36000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="l">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="-120" y="80" z="28000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="m">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="-80" y="-120" z="56800"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="n">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="120" y="-80" z="-7200"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="D">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="380" y="220" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<element type="point" label="E">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="260" y="300" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="A" a1="C" a2="4"/>
<output a0="poly2" a1="p" a2="q" a3="r" a4="s" a5="F" a6="G"/>
</command>
<element type="polygon" label="poly2">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<element type="segment" label="p">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="false"/>
<coords x="-80" y="0" z="14400"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="q">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="0" y="-80" z="14400"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="r">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="80" y="0" z="-8000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="s">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="0" y="80" z="-8000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="F">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelOffset x="-39" y="9"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="100" y="180" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<element type="point" label="G">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelOffset x="-27" y="36"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="100" y="100" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="B" a1="A" a2="4"/>
<output a0="poly3" a1="t" a2="a" a3="b" a4="c" a5="H" a6="I"/>
</command>
<element type="polygon" label="poly3">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<element type="segment" label="t">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="false"/>
<coords x="0" y="-120" z="12000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="a">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="119.99999999999997" y="0" z="-21599.999999999996"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="b">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="2.842170943040401e-14" y="120" z="2399.9999999999923"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="c">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="-120" y="0" z="36000"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="H">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelOffset x="-19" y="41"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="180" y="-19.99999999999998" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<element type="point" label="I">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelOffset x="12" y="27"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="300" y="-20.000000000000007" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="C" a1="G"/>
<output a0="d"/>
</command>
<element type="segment" label="d">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="80" y="-80" z="0"/>
<lineStyle thickness="3" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Mirror">
<input a0="C" a1="f"/>
<output a0="J"/>
</command>
<element type="point" label="J">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="-29" y="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="180" y="20" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Rotate">
<input a0="J" a1="(-(90°))" a2="H"/>
<output a0="M"/>
</command>
<element type="point" label="M">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="-2" y="39"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="219.99999999999997" y="-19.999999999999975" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Rotate">
<input a0="H" a1="(-(90°))" a2="M"/>
<output a0="N"/>
</command>
<element type="point" label="N">
<show object="true" label="true"/>
<objColor r="68" g="68" b="68" alpha="0"/>
<layer val="0"/>
<labelOffset x="-8" y="-2"/>
<labelMode val="0"/>
<isShape val="false"/>
<auxiliary val="true"/>
<coords x="219.99999999999997" y="19.999999999999996" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="J" a1="N"/>
<output a0="e"/>
</command>
<element type="segment" label="e">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="3.552713678800501e-15" y="39.99999999999997" z="-799.9999999999995"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="N" a1="M"/>
<output a0="f_1"/>
</command>
<element type="segment" label="f_1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="39.99999999999997" y="0" z="-8799.999999999993"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="J"/>
<output a0="g_1"/>
</command>
<element type="segment" label="g_1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="80" y="-120" z="-12000"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="N"/>
<output a0="h_1"/>
</command>
<element type="segment" label="h_1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="80" y="-80.00000000000003" z="-15999.999999999996"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="M"/>
<output a0="i_1"/>
</command>
<element type="segment" label="i_1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="119.99999999999997" y="-80.00000000000003" z="-27999.99999999999"/>
<lineStyle thickness="2" type="10" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Rotate">
<input a0="Polygon[{A, B, J}]" a1="((-k1) * Angle[C, B, J])" a2="B"/>
<output a0="poly4"/>
</command>
<element type="polygon" label="poly4">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="255" g="0" b="51" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="If">
<input a0="k4 < 0.5" a1="Rotate[Rotate[Polygon[{B, M, I}], ((-k2) * π), B], ((-k3) * π / 2), D]" a2="Mirror[Rotate[Rotate[Polygon[{B, M, I}], ((-k2) * π), B], ((-k3) * π / 2), D], Line[D, E]]"/>
<output a0="poly5"/>
</command>
<element type="polygon" label="poly5">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="244" g="0" b="153" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="Mirror">
<input a0="A" a1="i"/>
<output a0="A'"/>
</command>
<element type="point" label="A'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="253.84615384615387" y="210.7692307692308" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Rotate">
<input a0="Translate[Polygon[{M, N, J, H}], Vector[(k5 * Vector[H, A'])]]" a1="((-k6) * Angle[A', B, A])" a2="A'"/>
<output a0="poly6"/>
</command>
<element type="polygon" label="poly6">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="Rotate">
<input a0="Polygon[{B, N, J}]" a1="((-k7) * Angle[D, B, J])" a2="B"/>
<output a0="poly7"/>
</command>
<element type="polygon" label="poly7">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="255" g="204" b="51" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="If">
<input a0="k9 < 0.5" a1="Translate[Polygon[{B, M, N}], Vector[(k8 * Vector[M, C])]]" a2="Mirror[Translate[Polygon[{B, M, N}], Vector[(k8 * Vector[M, C])]], Line[C, E]]"/>
<output a0="poly8"/>
</command>
<element type="polygon" label="poly8">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="102" g="255" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="Rotate">
<input a0="Translate[Polygon[{C, F, G}], Vector[(k10 * Vector[G, B])]]" a1="(k11 * (π / 2 - Angle[A', B, A]))" a2="B"/>
<output a0="poly9"/>
</command>
<element type="polygon" label="poly9">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="102" g="102" b="102" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
<command name="Rotate">
<input a0="Translate[Polygon[{C, G, A}], Vector[(k12 * Vector[C, E])]]" a1="(k13 * (π / 2 - Angle[C, B, J]))" a2="E"/>
<output a0="poly10"/>
</command>
<element type="polygon" label="poly10">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="255" g="255" b="153" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
</element>
</construction>
</geogebra>