竞猜游戏:说出图中角的大小
2019-08-02 06:41
这是一个交互式的几何角度竞猜游戏。系统会自动生成包含各种几何图形(如任意四边形、等腰三角形等)的题目,学习者需要观察图形并判断或输入指定角的大小。该范例结合了随机出题与交互输入功能,旨在帮助学生在趣味互动中巩固对角度计算、几何性质(如对称性、极值问题)的理解,提升几何直观与推理能力。
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.553.0" app="classic" platform="d" id="84ce8adc-4129-471e-87d7-97471d450bfd" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="923" height="617" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.41386782231852653" orientation="1" />
</panes>
<views>
<view id="16" visible="false" inframe="false" stylebar="false" location="3,1,2" size="111" window="50,50,500,500" />
<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="295" 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="300" window="100,100,600,400" />
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,0" size="219" window="980,218,700,550" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="901" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="382" window="100,100,250,400" />
<view id="32" visible="false" inframe="false" stylebar="true" location="1" size="404" window="50,50,500,500" />
<view id="64" toolbar="0" visible="false" inframe="true" stylebar="true" location="1" size="150" window="710,290,500,500" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<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="1109" window="100,100,600,400" />
</views>
<toolbar show="false" 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" position="1" help="false" />
<input show="false" cmd="true" top="false" />
<dockBar show="false" east="true" />
</perspective>
</perspectives>
<labelingStyle val="0"/>
<font size="20"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="901" height="488"/>
<coordSystem xZero="347.92032182771106" yZero="273.19960627074033" scale="16.87161389849952" yscale="16.871613898499504"/>
<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="9" grid="0"/>
<axis id="0" show="true" label="x" unitLabel="" tickStyle="0" showNumbers="true"/>
<axis id="1" show="true" label="y" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="3"/>
<angleUnit val="degree"/>
<algebraStyle val="0" 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="">
<command name="Sequence">
<input a0="i" a1="i" a2="-20" a3="50" a4="1"/>
<output a0="l0"/>
</command>
<element type="list" label="l0">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="RandomElement">
<input a0="l0"/>
<output a0="a"/>
</command>
<element type="numeric" label="a">
<value val="19.0"/>
<symbolic val="true" />
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="255" g="255" b="255" alpha="1.0"/>
<bgColor r="0" g="0" b="204" alpha="255"/>
<layer val="0"/>
<labelOffset x="158" y="134"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<ggbscript val="If(n==1,SetValue(a,RandomElement(l1)));
If(n==2,SetValue(a,RandomElement(l2)));
If(n==3,SetValue(a,RandomElement(l3)))"/>
<font serif="false" sizeM="2.0" size="20" style="1"/>
<caption val="出题"/>
</element>
<expression label="α" exp="(a * 30°)" />
<element type="angle" label="α">
<angleStyle val="3"/>
<value val="9.948376736367678"/>
</element>
<expression label="b" exp="α / (360°)" />
<element type="numeric" label="b">
<value val="1.5833333333333333"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<expression label="c" exp="floor(b)" />
<element type="numeric" label="c">
<value val="1.0"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
</element>
<expression label="β" exp="α - (c * 360°)" />
<element type="angle" label="β">
<angleStyle val="3"/>
<value val="3.6651914291880914"/>
</element>
<expression label="text1" exp=""α=" + (LaTeX[α]) + "=" + (LaTeX[β]) + "+(" + (LaTeX[c]) + ")×360°"" />
<element type="text" label="text1">
<show object="true" label="true" ev="8"/>
<condition showObject="d ≠ 0"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<bgColor r="255" g="204" b="51" alpha="255"/>
<layer val="0"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.0" size="0" style="1"/>
<startPoint x="-17.30350866323196" y="4.287264828372057" z="1.0"/>
</element>
<element type="boolean" label="d">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="283" y="132"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="查看答案"/>
</element>
<expression label="P" exp="((6 * cos(α)), (6 * sin(α)))" type="point" />
<element type="point" label="P">
<show object="true" label="true" ev="4"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-44" y="25"/>
<labelMode val="3"/>
<coords x="-5.196152422706635" y="-2.999999999999995" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
<caption val="$\Large{\mathit{\textcolor{red} P}}$"/>
</element>
<command name="Segment">
<input a0="(0, 0)" a1="(3 * P / 2)"/>
<output a0="f"/>
</command>
<element type="segment" label="f">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="4.499999999999993" y="-7.794228634059952" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="numeric" label="t">
<value val="0.7"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelOffset x="-80" y="-6"/>
<labelMode val="9"/>
<slider min="0" max="1" absoluteScreenLocation="true" width="200.0" x="962.0" y="52.0" fixed="false" horizontal="true" showAlgebra="true"/>
<lineStyle thickness="10" type="0" typeHidden="1"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<caption val="螺旋线调节系数"/>
</element>
<command name="CurveCartesian">
<input a0="If[α > 0, ((t * (1 + θ / π)) * cos(θ)), ((t * (1 + θ / π)) * cos((-θ)))]" a1="If[α > 0, ((t * (1 + θ / π)) * sin(θ)), ((t * (1 + θ / π)) * sin((-θ)))] + 0" a2="θ" a3="0" a4="abs(α)"/>
<output a0="e"/>
</command>
<element type="curvecartesian" label="e">
<show object="true" label="false" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="4" type="0" typeHidden="1"/>
</element>
<command name="If">
<input a0="α > 0" a1="(((t * (1 + (abs(α) - π / 12) / π)) * cos(abs(α) - π / 12)), ((t * (1 + (abs(α) - π / 12) / π)) * sin(abs(α) - π / 12)))" a2="(((t * (1 + (abs(α) - π / 12) / π)) * cos((-(abs(α) - π / 12)))), ((t * (1 + (abs(α) - π / 12) / π)) * sin((-(abs(α) - π / 12)))))"/>
<output a0="B"/>
</command>
<element type="point" label="B">
<show object="false" label="true" ev="4"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.7609379868095867" y="-0.7397911039180366" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="If">
<input a0="α > 0" a1="(((t * (1 + abs(α) / π)) * cos(abs(α))), ((t * (1 + abs(α) / π)) * sin(abs(α))))" a2="(((t * (1 + abs(α) / π)) * cos((-abs(α)))), ((t * (1 + abs(α) / π)) * sin((-abs(α)))))"/>
<output a0="C"/>
</command>
<element type="point" label="C">
<show object="false" label="true" ev="4"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-2.5259074277046136" y="-1.4583333333333306" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Vector">
<input a0="B" a1="C"/>
<output a0="u"/>
</command>
<element type="vector" label="u">
<show object="true" label="false" ev="4"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.23503055910497306" y="-0.718542229415294" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
<startPoint exp="B"/>
</element>
<element type="numeric" label="n">
<value val="2.0"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="1" max="3" absoluteScreenLocation="true" width="200.0" x="290.0" y="173.0" fixed="true" horizontal="true" showAlgebra="true"/>
<lineStyle thickness="10" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="Textfield">
<input a0="n"/>
<output a0="InputBox1"/>
</command>
<element type="textfield" label="InputBox1">
<show object="true" label="true"/>
<objColor r="255" g="0" b="0" alpha="1.0"/>
<layer val="0"/>
<labelOffset x="167" y="29"/>
<labelMode val="3"/>
<auxiliary val="true"/>
<font serif="false" sizeM="1.4" size="8" style="0"/>
<linkedGeo exp="n"/>
<decimals val="0"/>
<length val="3"/>
<caption val="选定试题难易"/>
</element>
<command name="KeepIf">
<input a0="-3 ≤ x ≤ 12" a1="l0"/>
<output a0="l2_1"/>
</command>
<element type="list" label="l2_1">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<auxiliary val="true"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="KeepIf">
<input a0="-12 ≤ x < -3 ∨ 13 ≤ x ≤ 24" a1="l0"/>
<output a0="l3_1"/>
</command>
<element type="list" label="l3_1">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<auxiliary val="true"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="Sequence">
<input a0="(3 * i)" a1="i" a2="-6" a3="16"/>
<output a0="l4"/>
</command>
<element type="list" label="l4">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<auxiliary val="true"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
<symbolic val="true" />
</element>
<command name="Intersection">
<input a0="l3_1" a1="l4"/>
<output a0="l5"/>
</command>
<element type="list" label="l5">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<auxiliary val="true"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="Union">
<input a0="l2_1" a1="l5"/>
<output a0="l1"/>
</command>
<element type="list" label="l1">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="Remove">
<input a0="Union[l3_1, l4]" a1="l1"/>
<output a0="l2"/>
</command>
<element type="list" label="l2">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<command name="Remove">
<input a0="l0" a1="Union[l1, l2]"/>
<output a0="l3"/>
</command>
<element type="list" label="l3">
<objColor r="0" g="100" b="0" alpha="0.10000000149011612"/>
<lineStyle thickness="3" type="0" typeHidden="1"/>
<pointSize val="4"/>
<angleStyle val="0"/>
</element>
<expression label="text3" exp=""实验操作说明
1、先在【选定试题难易】中输入数字1~3,其中1为容易,2为适中,3为困难;
2、点击按键【出题】,系统根据选定的难易度随机给出一任意角(为30度的整倍角)并绘制图像;
3、读者根据图像说出任意角的值,选中【查看答案】后可检测正误。""/>
<element type="text" label="text3">
<show object="true" label="true" ev="40"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<bgColor r="153" g="255" b="153" alpha="255"/>
<layer val="1"/>
<labelMode val="0"/>
<startPoint x="-19.84791089386342" y="-6.347508395711174" z="1.0"/>
</element>
</construction>
</geogebra>