Quadrilateral Reflection - Custom Tool Iteration Demo
2020-03-31 12:42
This example demonstrates how to perform iterative reflection transformations on a quadrilateral using GeoGebra custom tools and IterationList. By employing commands such as Polygon, Mirror, Vector, and Sequence, an initial quadrilateral is constructed and repeatedly reflected along specified axes or vectors, generating symmetric iterative geometric patterns. The case illustrates the composite app
In collections
GeoGebra & Junior High Math Integration
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.574.0" app="classic" platform="d" id="779a38b0-b65d-433d-b8f1-98b721d3d6d4" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/apps/xsd/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1440" height="860" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.24722222222222223" 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="true" location="1,1" size="857" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 || 1008 1009 || 66 68 || 6" visible="false" inframe="false" stylebar="true" location="1,3" size="614" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="1424" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="true" location="3" size="356" window="100,100,600,400" />
<view id="16" visible="false" inframe="false" stylebar="true" location="1" size="638" 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="false" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="4097" visible="false" inframe="true" stylebar="true" location="1" size="939" window="288,177,863,506" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="false" stylebar="true" location="1" size="150" window="50,50,500,500" />
<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="true" location="1" size="1576" window="100,100,600,400" />
</views>
<toolbar show="true" items="0 39 73 62 | 1 501 67 , 5 19 , 72 75 76 | 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 14 68 | 30 29 54 32 31 33 | 25 17 26 60 52 61 | 40 41 42 , 27 28 35 , 6 | | 100014 100014 100001 100002 100003 100004 100005 100006 100007 100008 100009 100010 100011 100013" position="1" help="false" />
<input show="true" cmd="true" top="false" />
<dockBar show="false" east="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="16"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="1424" height="679"/>
<coordSystem xZero="157.83508464314036" yZero="565.7617066129465" scale="45.96180076037411" yscale="45.961800760374075"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="3" 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="9" grid="0"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1.0" tickExpression="1"/>
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1.0" tickExpression="1"/>
</euclidianView>
<euclidianView>
<viewNumber viewNo="2"/>
<coordSystem xZero="215.0" yZero="315.0" scale="50.0" yscale="50.0"/>
<evSettings axes="true" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="26" gridType="3"/>
<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="0"/>
<axis id="0" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<algebraView>
<mode val="1"/>
</algebraView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="2" spreadsheet="0"/>
<coordStyle val="0"/>
</kernel>
<tableview min="-2.0" max="2.0" step="1.0"/>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<element type="point" label="A">
<show object="true" label="true" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-12" y="45"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="7.996364308875438" y="0.017020109464817034" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="B">
<show object="true" label="true" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="3" y="13"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="8.011977078603154" y="4.013889159760363" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="C">
<show object="true" label="true" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-40" y="11"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="-0.012986561443360899" y="4.02950192948808" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="D">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-16" y="36"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.564685918482165" y="0.2043733461974172" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Polygon">
<input a0="A" a1="B" a2="C" a3="D"/>
<output a0="q1" a1="a" a2="b" a3="c" a4="d"/>
</command>
<element type="polygon" label="q1">
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="a">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="-3.9968690502955457" y="0.015612769727716191" z="31.960155289982353"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="b">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="-0.01561276972771708" y="-8.024963640046515" z="32.33640371544575"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="c">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="3.8251285832906627" y="0.5776724799255258" z="-2.2780571050964102"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="d">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="0.18735323673260018" y="7.431678390393273" z="-1.6246327150726634"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Point">
<input a0="q1"/>
<output a0="E"/>
</command>
<element type="point" label="E">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.3367868511919338" y="1.7134347377138197" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Point">
<input a0="q1"/>
<output a0="F"/>
</command>
<element type="point" label="F">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="4.324962320031308" y="0.10957646212475143" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<expression label="l1" exp="{a, b, c, d}" />
<element type="list" label="l1">
<show object="false" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="5"/>
<angleStyle val="0"/>
</element>
<command name="Mirror">
<input a0="E" a1="Element[KeepIf[F ∈ P, P, l1], 1]"/>
<output a0="E'"/>
</command>
<element type="point" label="E'">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="0.26103754629909903" y="-1.2912876897020116" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Element" type="point">
<input a0="{Intersect[Line[E', F], q1]}" a1="2"/>
<output a0="G"/>
</command>
<element type="point" label="G">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="8.001676598941467" y="1.3769663663686391" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Point">
<input a0="q1"/>
<output a0="H"/>
</command>
<element type="point" label="H">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="6.108227410957416" y="0.06462019932829571" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Point">
<input a0="q1"/>
<output a0="I"/>
</command>
<element type="point" label="I">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.0975299566070405" y="3.2977033640192026" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="四边形反射2">
<input a0="H" a1="I" a2="q1"/>
<output a0="J"/>
</command>
<element type="point" label="J">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="0.8163055783436325" y="4.02788852065581" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="四边形反射2">
<input a0="I" a1="J" a2="q1"/>
<output a0="K"/>
</command>
<element type="point" label="K">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="4.651527646317625" y="0.10134372280660912" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Polygon">
<input a0="(0, 0)" a1="(8, 0)" a2="(8, 4)" a3="(0, 4)"/>
<output a0="q2" a1="f" a2="g" a3="h" a4="i"/>
</command>
<element type="polygon" label="q2">
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="segment" label="f">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="0.0" y="8.0" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="g">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="-4.0" y="0.0" z="32.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="h">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="0.0" y="-8.0" z="32.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="segment" label="i">
<show object="false" label="false"/>
<objColor r="153" g="51" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="false"/>
<coords x="4.0" y="0.0" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Point">
<input a0="i"/>
<output a0="P"/>
</command>
<element type="point" label="P">
<show object="true" label="true" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-40" y="23"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="3.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Point">
<input a0="f"/>
<output a0="P_1"/>
</command>
<element type="point" label="P_1">
<show object="true" label="true" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-14" y="41"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="3.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="numeric" label="n">
<value val="18.0"/>
<show object="true" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="3"/>
<slider min="0" max="18" absoluteScreenLocation="true" width="100.0" x="555.0" y="664.0" fixed="false" horizontal="true" showAlgebra="true"/>
<lineStyle thickness="10" type="0" typeHidden="1"/>
<animation speed="1" type="0" playing="false"/>
<caption val="反射次数"/>
</element>
<command name="IterationList">
<input a0="四边形反射2[Q, R, q2]" a1="Q" a2="R" a3="{P, P_1}" a4="floor(n) + 1"/>
<output a0="l2"/>
</command>
<element type="list" label="l2">
<show object="true" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="5"/>
<angleStyle val="0"/>
</element>
<command name="Sequence">
<input a0="Vector[l2(k), l2(k + 1)]" a1="k" a2="1" a3="floor(n)"/>
<output a0="l3"/>
</command>
<element type="list" label="l3">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<pointSize val="5"/>
<angleStyle val="0"/>
</element>
<command name="Sequence">
<input a0="Segment[(0, k), (8, k)]" a1="k" a2="0" a3="4"/>
<output a0="l4"/>
</command>
<element type="list" label="l4">
<show object="true" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="5" type="20" typeHidden="1"/>
<pointSize val="5"/>
<angleStyle val="0"/>
</element>
<command name="Sequence">
<input a0="Segment[(k, 0), (k, 4)]" a1="k" a2="0" a3="8"/>
<output a0="l5"/>
</command>
<element type="list" label="l5">
<show object="true" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="5" type="20" typeHidden="1"/>
<pointSize val="5"/>
<angleStyle val="0"/>
</element>
<command name="Point">
<input a0="Segment[l2(floor(n) + 1), l2(floor(n) + 2)]" a1="n - floor(n)"/>
<output a0="N"/>
</command>
<element type="point" label="N">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="0.0" y="3.0000000000000355" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="Vector">
<input a0="l2(floor(n) + 1)" a1="N"/>
<output a0="u"/>
</command>
<element type="vector" label="u">
<show object="true" label="false"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.0" y="0.0" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<coordStyle style="cartesian"/>
<startPoint x="-0.0" y="3.0000000000000355" z="1.0"/>
</element>
<command name="Intersect">
<input a0="xAxis" a1="yAxis"/>
<output a0="O"/>
</command>
<element type="point" label="O">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<coords x="0.0" y="-0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<command name="坐标轴">
<input a0="O"/>
<output a0="P_2" a1="Q" a2="R" a3="S" a4="text1" a5="v" a6="text2" a7="w" a8="text3"/>
</command>
<element type="point" label="P_2">
<show object="true" label="false"/>
<objColor r="0" g="255" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<auxiliary val="true"/>
<coords x="-2.8701234216155647" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="Q">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="255" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<auxiliary val="true"/>
<coords x="9.260998656820512" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="R">
<show object="true" label="false"/>
<objColor r="0" g="255" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<auxiliary val="true"/>
<coords x="0.0" y="-2.6371507442470707" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="point" label="S">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="255" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="3"/>
<animation step="0.1" speed="1" type="1" playing="false"/>
<auxiliary val="true"/>
<coords x="0.0" y="5.700068290353793" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
<caption val="$\large{%n}$"/>
</element>
<element type="text" label="text1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="7" style="1"/>
<decimals val="2"/>
<auxiliary val="true"/>
<startPoint x="0.0" y="-0.0" z="1.0"/>
</element>
<element type="vector" label="v">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="0.0" y="8.337219034600864" z="0.0"/>
<lineStyle thickness="7" type="0" typeHidden="1" opacity="178"/>
<coordStyle style="cartesian"/>
<startPoint exp="R"/>
</element>
<element type="text" label="text2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="7" style="1"/>
<decimals val="2"/>
<auxiliary val="true"/>
<startPoint x="8.65687698540218" y="-0.18735323673260365" z="1.0"/>
</element>
<element type="vector" label="w">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<auxiliary val="true"/>
<coords x="12.131122078436077" y="0.0" z="0.0"/>
<lineStyle thickness="7" type="0" typeHidden="1" opacity="178"/>
<coordStyle style="cartesian"/>
<startPoint exp="P_2"/>
</element>
<element type="text" label="text3">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="7" style="1"/>
<decimals val="2"/>
<auxiliary val="true"/>
<startPoint x="0.23419154591575436" y="5.303849865195001" z="1.0"/>
</element>
<element type="button" label="题目条件定型">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="10" y="99"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<ggbscript val="SetValue(P,Point(Segment((0,0),(0,4)),0.75))
SetValue(P_1,Point(Segment((0,0),(8,0)),0.375))"/>
<font serif="false" sizeM="2.0" size="16" style="0"/>
</element>
<expression label="text4" exp=""如图,弹性小球从点P(0,3)出发,\\沿所示方向运动,每当小球碰到矩形OABC的边时反弹,\\
反弹时反射角等于入射角. \\当小球第1次碰到矩形的边时的点为P_1 ,\\第2次碰到矩形的边时的点为P_2 ,……\\第n次碰到矩形的边时的点为P_n .\\ 则点P_3 的坐标是 ,\\点P_{2014} 的坐标是 ""/>
<element type="text" label="text4">
<show object="true" label="false" ev="40"/>
<condition showObject="e"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<bgColor r="255" g="250" b="205" alpha="255"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="false" sizeM="1.4" size="7" style="1"/>
<startPoint x="1.3427148636877693" y="12.294300560508038" z="1.0"/>
</element>
<element type="boolean" label="e">
<value val="true"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="72" y="73"/>
<labelMode val="4"/>
<checkbox fixed="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="58" y="45"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<ggbscript val="setvalue(e,if(e,false,true))"/>
<font serif="false" sizeM="2.0" size="16" style="0"/>
<caption val="题目"/>
</element>
<element type="button" label="button2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="1365" y="193"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<javascript val="var allPoints = ggbApplet.getAllObjectNames("point");
for (index in allPoints) {
 var commandStr = "SetCaption(" + allPoints[index] + ", \"$\\large{%n}$\")";
 ggbApplet.evalCommand(commandStr);
}"/>
<font serif="false" sizeM="2.0" size="16" style="0"/>
</element>
<expression label="text5" exp=""解答:如图,根据反射角与入射角的定义作出图形,可知:\\
(1)当点P第3次碰到矩形的边时,点P_3的坐标为(8,3);\\
(2)每6次反弹为一个循环组依次循环,\\经过6次反弹后动点回到出发点(0,3),
∵2014÷6=335…4,\\
∴当点P第2014次碰到矩形的边时\\为第336个循环组的第4次反弹,点P_{2014}的坐标为(5,0).\\""/>
<element type="text" label="text5">
<show object="true" label="false" ev="40"/>
<condition showObject="j"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<bgColor r="191" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="7" style="0"/>
<startPoint x="9.091896062460933" y="5.253965306362414" z="1.0"/>
</element>
<element type="boolean" label="j">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="872" y="649"/>
<labelMode val="4"/>
<checkbox fixed="true"/>
<caption val="解答"/>
</element>
<expression label="text6" exp=""刘护灵绘制3.31""/>
<element type="text" label="text6">
<show object="true" label="false" ev="40"/>
<objColor r="255" g="255" b="0" alpha="0.0"/>
<bgColor r="0" g="0" b="0" alpha="255"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.0" size="0" style="1"/>
<startPoint x="11.768031417584895" y="-1.9046967685941676" z="1.0"/>
</element>
</construction>
</geogebra>