Rotation of Squares and Exploration of Pythagorean Theorem
2012-06-05 06:50
This GeoGebra applet dynamically demonstrates the rotation of squares, visually illustrating geometric properties under transformation. By combining the Pythagorean theorem with polygon constructions, it explores the underlying mathematical rules regarding vertex loci, segment lengths, and angle variations during rotation. It is highly suitable for middle and high school geometry education, helpin
In collections
Polygons: Interactive GeoGebra Geometry Book
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.0" id="77744b78-3974-40a5-a77a-b544540b0ce8" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1296" height="1000" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.19598765432098766" 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="200" window="0,0,400,400" />
<view id="1" visible="true" inframe="false" stylebar="false" location="1" size="1280" window="0,0,400,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="200" window="0,0,200,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="1280" height="834"/>
<coordSystem xZero="394.00000000000006" yZero="201.00000000000003" scale="50.00000000000001" yscale="50.0"/>
<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="">
<command name="Point">
<input a0="xAxis"/>
<output a0="B"/>
</command>
<element type="point" label="B">
<show object="true" label="true"/>
<objColor r="125" g="125" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<coords x="-4.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Point">
<input a0="yAxis"/>
<output a0="A"/>
</command>
<element type="point" label="A">
<show object="true" label="true"/>
<objColor r="125" g="125" b="255" 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.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="A" a1="B" a2="4"/>
<output a0="多邊形1" a1="b" a2="a_1" a3="c" a4="d" a5="C" a6="D"/>
</command>
<element type="polygon" label="多邊形1">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="0" g="255" b="51" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="b">
<show object="true" label="false"/>
<objColor r="0" g="255" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="-4.0" 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_1">
<show object="true" label="false"/>
<objColor r="0" g="255" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="3.999999999999999" y="0.0" z="15.999999999999996"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="c">
<show object="true" label="false"/>
<objColor r="0" g="255" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="8.881784197001252E-16" y="3.999999999999999" z="15.999999999999998"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="d">
<show object="true" label="false"/>
<objColor r="0" g="255" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-4.0" y="6.661338147750939E-16" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="C">
<show object="true" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="-4.0" y="-3.999999999999999" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="D">
<show object="true" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="-6.661338147750939E-16" y="-4.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="numeric" label="a">
<value val="-0.82"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="-0.82" max="0.75" absoluteScreenLocation="true" width="100.0" x="558.0" y="30.0" fixed="false" horizontal="true"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<animation step="0.01" speed="1" type="0" playing="false"/>
</element>
<expression label="G_1" exp="(3 * cos(a), 3 * sin(a))" type="point" />
<element type="point" label="G_1">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.046663621862841" y="-2.1934374891806874" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<expression label="文字1" exp=""ABCD 與AEFG是正方形 \overline{AB}=\overline{AD}, \overline{AE}=\overline{AG},∠BAE=∠DAG 故△ABE≅△AGD (SAS)""/>
<element type="text" label="文字1">
<show object="true" label="false"/>
<objColor r="0" g="51" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="false" size="6" style="1"/>
<startPoint x="-6.5600000000000005" y="2.86" z="1.0"/>
</element>
<expression label="E_1" exp="(4 * cos(a - 2.32), 4 * sin(a - 2.32))" type="point" />
<element type="point" label="E_1">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-3.999994926910158" y="-0.006370611665949089" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="G_1" a1="A" a2="E_1"/>
<output a0="多邊形2" a1="e" a2="g" a3="a_2"/>
</command>
<element type="polygon" label="多邊形2">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="255" g="0" b="0" alpha="0.7"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="e">
<show object="true" label="false"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.1934374891806874" y="-2.046663621862841" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="g">
<show object="true" label="false"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.006370611665949089" y="-3.999994926910158" 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_2">
<show object="true" label="false"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.1870668775147384" y="6.046658548772999" z="8.786777328363018"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="G">
<show object="true" 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="0" playing="false"/>
<coords x="2.1950666066214626" y="2.0449162800700025" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="G" a1="A" a2="4"/>
<output a0="多邊形3" a1="f" a2="a_3" a3="h" a4="i" a5="E" a6="F"/>
</command>
<element type="polygon" label="多邊形3">
<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="0"/>
</element>
<element type="segment" label="f">
<show object="true" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.0449162800700025" y="-2.1950666066214626" 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_3">
<show object="true" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.195066606621462" y="2.0449162800700016" z="-0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="h">
<show object="true" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.0449162800700016" y="2.195066606621463" z="8.999999999999996"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="i">
<show object="true" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.195066606621463" y="-2.044916280070002" z="8.999999999999998"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="E">
<show object="true" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="2.0449162800700016" y="-2.195066606621462" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="F">
<show object="true" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="4.239982886691465" y="-0.1501503265514605" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Polygon">
<input a0="A" a1="B" a2="E"/>
<output a0="多邊形4" a1="h_1" a2="a_4" a3="b_1"/>
</command>
<element type="polygon" label="多邊形4">
<lineStyle thickness="2" type="0" typeHidden="1"/>
<show object="true" label="false"/>
<objColor r="255" g="0" b="51" alpha="0.7"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="h_1">
<show object="true" label="false"/>
<objColor r="255" g="0" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="-4.0" 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_4">
<show object="true" label="false"/>
<objColor r="255" g="0" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.195066606621462" y="6.044916280070002" z="8.780266426485849"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="b_1">
<show object="true" label="false"/>
<objColor r="255" g="0" b="51" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.195066606621462" y="-2.0449162800700016" z="0.0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="E"/>
<output a0="k"/>
</command>
<element type="segment" label="k">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="2.195066606621462" y="6.044916280070002" z="8.780266426485849"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Intersect">
<input a0="a_4" a1="k"/>
<output a0="H_1"/>
</command>
<element type="point" label="H_1">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="NaN" y="NaN" z="NaN"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="a_4" a1="k"/>
<output a0="J"/>
</command>
<element type="point" label="J">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="NaN" y="NaN" z="NaN"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="a_4" a1="k"/>
<output a0="L"/>
</command>
<element type="point" label="L">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="NaN" y="NaN" z="NaN"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="G" a1="D"/>
<output a0="j"/>
</command>
<element type="segment" label="j">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="6.0449162800700025" y="-2.195066606621463" z="-8.780266426485849"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<eqnStyle style="implicit"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Intersect">
<input a0="a_4" a1="k"/>
<output a0="I"/>
</command>
<element type="point" label="I">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="NaN" y="NaN" z="NaN"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="a_4" a1="k"/>
<output a0="K"/>
</command>
<element type="point" label="K">
<show object="true" label="false"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="NaN" y="NaN" z="NaN"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="j" a1="a_4"/>
<output a0="H"/>
</command>
<element type="point" label="H">
<show object="true" label="true"/>
<objColor r="64" g="64" b="64" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="33.802705834797706" y="-72.34924509483501" z="41.35933024056002"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Angle">
<input a0="D" a1="H" a2="E"/>
<output a0="α"/>
</command>
<element type="angle" label="α">
<value val="1.5707963267948966"/>
<show object="true" label="true"/>
<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>
</construction>
</geogebra>