Trigonometric Ratios: Sine in Context
2013-03-19 09:09
This example introduces trigonometric ratios via a fishing scenario. Using a fishing rod, string, and water surface to form a right triangle, it visually demonstrates the sine function's definition. Users can interact to observe sine ratio changes at different angles, aiding the understanding of fundamental trigonometric proportions.
In collections
三角函數
Loading the GeoGebra board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.400.0" app="classic" platform="w" id="6a3e6ec0-f2ec-436c-8c24-09b04837bfcf" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1000" height="690" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.2" orientation="1" />
</panes>
<views>
<view id="1" visible="true" inframe="false" stylebar="false" location="1" size="500" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="200" window="100,100,250,400" />
<view id="4" visible="false" inframe="false" stylebar="false" location="1,1" size="300" window="100,100,600,400" />
<view id="8" visible="false" inframe="false" stylebar="false" location="1,3" size="300" window="100,100,600,400" />
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,1,1,1" size="400" window="100,100,700,550" />
<view id="512" visible="false" inframe="false" stylebar="false" location="1,1,1" size="500" 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="algebra" />
<dockBar show="false" east="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="24"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="997" height="687"/>
<coordSystem xZero="116.37621612706036" yZero="545.9366758384668" scale="221.24914158885812" yscale="221.24914158885878"/>
<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="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"/>
<grid distX="0.1" distY="0.1" distTheta="0.5235987755982988"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0" spreadsheet="0"/>
<coordStyle val="0"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<command name="Point">
<input a0="Sequence[((0.5 * cos(i°)), (0.5 * sin(i°))), i, 0, 90]"/>
<output a0="R"/>
</command>
<element type="point" label="R">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="204" b="0" alpha="0"/>
<layer val="9"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="0.43301270189221935" y="0.24999999999999997" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Ray">
<input a0="(2 * R)" a1="(3 * R)"/>
<output a0="ray"/>
</command>
<element type="ray" label="ray">
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0"/>
<layer val="6"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="-0.24999999999999994" y="0.4330127018922193" z="0"/>
<lineStyle thickness="3" type="30" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="O">
<show object="false" label="false" ev="4"/>
<condition showObject="α < 90°"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="4"/>
<labelMode val="0"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="0" y="0" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Point">
<input a0="ray"/>
<output a0="P"/>
</command>
<element type="point" label="P">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="204" b="0" alpha="0"/>
<layer val="4"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="1.7345019147922027" y="1.0014151474151993" z="1"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="O" a1="P"/>
<output a0="rod"/>
</command>
<element type="segment" label="rod">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="2"/>
<labelOffset x="-76" y="-25"/>
<labelMode val="3"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="-1.0014151474151993" y="1.7345019147922027" z="0"/>
<lineStyle thickness="7" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
<caption val="?"/>
</element>
<expression label="Q" exp="(x(P), 0)" type="point" />
<element type="point" label="Q">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="4"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="1.7345019147922027" y="0" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="P" a1="Q"/>
<output a0="string"/>
</command>
<element type="segment" label="string">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="2"/>
<labelOffset x="30" y="37"/>
<labelMode val="3"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="1.0014151474151993" y="0" z="-1.7369564906935793"/>
<lineStyle thickness="7" type="20" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
<caption val="?"/>
</element>
<expression label ="water" exp="water(y) = y ≤ 0" type="function"/>
<element type="function" label="water">
<show object="true" label="false" ev="4"/>
<objColor r="102" g="153" b="255" alpha="0.5"/>
<layer val="0"/>
<labelOffset x="-1" y="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
</element>
<command name="Angle">
<input a0="(1, 0)" a1="O" a2="P"/>
<output a0="α"/>
</command>
<element type="angle" label="α">
<angleStyle val="0"/>
<value val="0.5235987755982987"/>
<show object="true" label="true" ev="4"/>
<objColor r="0" g="100" b="0" alpha="0.5"/>
<layer val="4"/>
<labelOffset x="34" y="-3"/>
<labelMode val="2"/>
<lineStyle thickness="2" type="0" typeHidden="2"/>
<arcSize val="60"/>
<selectionAllowed val="false"/>
</element>
<element type="image" label="fish">
<file name="62aea3f20ede593a48d115d7b7f77ebc/31ec4f8660244a942f3e2336b3cdd13a\fish.png"/>
<inBackground val="false"/>
<startPoint number="0" exp="Q - (0, 0.2)"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="6"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
</element>
<command name="Angle">
<input a0="P" a1="Q" a2="O"/>
<output a0="β"/>
</command>
<element type="angle" label="β">
<angleStyle val="0"/>
<value val="1.5707963267948966"/>
<show object="true" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.5"/>
<layer val="0"/>
<labelMode val="2"/>
<lineStyle thickness="1" type="0" typeHidden="2"/>
<arcSize val="30"/>
<selectionAllowed val="false"/>
</element>
<element type="image" label="fishingRod">
<file name="97881152df2be26f699a8011c9f2901b/ac0ea28f49a48cbb08bcd17b02f4e18c\rod.png"/>
<inBackground val="false"/>
<startPoint number="0" exp="O"/>
<startPoint number="1" exp="(2 * R)"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="6"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<caption val="?"/>
</element>
<element type="point" label="P'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="4"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="1.8151806923177" y="0.8464326577628358" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="1"/>
<labelOffset x="769" y="427"/>
<labelMode val="3"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[P',P] SetVisibleInView[rod',1,true] SetVisibleInView[string',1,true] SetVisibleInView[γ,1,true] SetVisibleInView[δ,1,true] SetVisibleInView[text2,1,true]"/>
<font serif="false" sizeM="2" size="24" style="0"/>
<caption val="Take a picture"/>
</element>
<expression label="Q'" exp="(x(P'), 0)" type="point" />
<element type="point" label="Q'">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="4"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="1.8151806923177" y="0" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="O" a1="P'"/>
<output a0="rod'"/>
</command>
<element type="segment" label="rod'">
<show object="true" label="true" ev="1"/>
<objColor r="160" g="160" b="160" alpha="0"/>
<layer val="0"/>
<labelOffset x="4" y="11"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="-0.8464326577628358" y="1.8151806923177" z="0"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="P'" a1="Q'"/>
<output a0="string'"/>
</command>
<element type="segment" label="string'">
<show object="true" label="true" ev="1"/>
<objColor r="160" g="160" b="160" alpha="0"/>
<layer val="0"/>
<labelOffset x="-43" y="25"/>
<labelMode val="2"/>
<selectionAllowed val="false"/>
<isShape val="false"/>
<coords x="0.8464326577628358" y="0" z="-1.5364282177182553"/>
<lineStyle thickness="9" type="20" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="button" label="button2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="6"/>
<labelOffset x="769" y="472"/>
<labelMode val="3"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetVisibleInView[rod',1,false] SetVisibleInView[string',1,false] SetVisibleInView[γ,1,false] SetVisibleInView[δ,1,false] SetVisibleInView[text2,1,false]"/>
<font serif="false" sizeM="2" size="24" style="0"/>
<caption val="Clear picture"/>
</element>
<element type="boolean" label="showStringValue">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="6"/>
<labelOffset x="12" y="46"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<ggbscript onUpdate="SetCaption[string,If[showStringValue,"%v m","?"]]"/>
<caption val="Length of fishing line"/>
</element>
<command name="Angle">
<input a0="P'" a1="Q'" a2="O"/>
<output a0="γ"/>
</command>
<element type="angle" label="γ">
<angleStyle val="0"/>
<value val="1.5707963267948966"/>
<show object="true" label="false" ev="1"/>
<objColor r="160" g="160" b="160" alpha="0.5"/>
<layer val="0"/>
<labelMode val="2"/>
<lineStyle thickness="1" type="0" typeHidden="2"/>
<arcSize val="30"/>
<selectionAllowed val="false"/>
</element>
<element type="boolean" label="showRodValue">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="12" y="2"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<ggbscript onUpdate="SetCaption[rod,If[showRodValue,"%v m","?"]]"/>
<caption val="Length of fishing rod"/>
</element>
<element type="boolean" label="showSinRatio">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="12" y="90"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="Ratio of length of fishing line to length of fishing rod"/>
</element>
<element type="image" label="boy">
<file name="e96b6121ee43a9016f36aa156ab3bf74/8ca3de6a3f3aed8cc2be8412bea258e2\boy.png"/>
<inBackground val="false"/>
<startPoint number="0" x="-0.25" y="0" z="1"/>
<startPoint number="1" x="0" y="0" z="1"/>
<show object="true" label="false"/>
<condition showObject="showBoy"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<isShape val="false"/>
<ggbscript val="SetValue[showBoy,!showBoy]"/>
</element>
<element type="image" label="girl">
<file name="33b1852833cd9ca52e4842ce9835cd09/c3e4473f81d9bde4acab3e8d8b5cf87f\girl.png"/>
<inBackground val="false"/>
<startPoint number="0" x="-0.25" y="0" z="1"/>
<startPoint number="1" x="0" y="0" z="1"/>
<show object="true" label="false"/>
<condition showObject="¬showBoy"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<isShape val="false"/>
<ggbscript val="SetValue[showBoy,!showBoy]"/>
</element>
<element type="boolean" label="showBoy">
<value val="true"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="17" y="70"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
</element>
<command name="Angle">
<input a0="Q'" a1="O" a2="P'"/>
<output a0="δ"/>
</command>
<element type="angle" label="δ">
<angleStyle val="0"/>
<value val="0.4363323129985825"/>
<show object="true" label="true" ev="1"/>
<objColor r="160" g="160" b="160" alpha="0.5"/>
<layer val="0"/>
<labelOffset x="31" y="-4"/>
<labelMode val="2"/>
<lineStyle thickness="1" type="0" typeHidden="2"/>
<arcSize val="60"/>
<selectionAllowed val="false"/>
</element>
<element type="boolean" label="showSin">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="698" y="2"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="Sine ratio"/>
</element>
<element type="button" label="button3">
<show object="true" label="true"/>
<condition showObject="α < 90°"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="127" y="559"/>
<labelMode val="0"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[R,(0.5cos(α+1°), 0.5sin(α+1°))]"/>
<font serif="false" sizeM="1.4" size="10" style="0"/>
<caption val="+1°"/>
</element>
<element type="button" label="button4">
<show object="true" label="true"/>
<condition showObject="α > 0°"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelOffset x="60" y="559"/>
<labelMode val="0"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[R,(0.5cos(α-1°), 0.5sin(α-1°))]"/>
<font serif="false" sizeM="1.4" size="10" style="0"/>
<caption val="-1°"/>
</element>
<element type="numeric" label="lang">
<value val="2"/>
<symbolic val="true" />
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="8"/>
<labelMode val="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<element type="button" label="button0">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="8"/>
<labelOffset x="834" y="559"/>
<labelMode val="3"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[lang,If[lang==1,2,1]] RunClickScript[buttonLang]"/>
<font serif="false" sizeM="1.4" size="10" style="0"/>
<caption val="中文"/>
</element>
<element type="button" label="buttonLang">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="8"/>
<labelOffset x="914" y="488"/>
<labelMode val="0"/>
<fixed val="true"/>
<isShape val="false"/>
<auxiliary val="true"/>
<ggbscript val="SetCaption[button0,If[lang==1,"ENG","中文"]] SetCaption[showRodValue,If[lang==1,"魚桿長度","Length of fishing rod"]] SetCaption[showSin,If[lang==1,"正弦","Sine ratio"]] SetCaption[showSinRatio,If[lang==1,"魚絲與魚桿長度之比","Ratio of length of fishing line to length of fishing rod"]] SetCaption[showStringValue,If[lang==1,"魚絲長度","Length of fishing line"]] SetCaption[button1,If[lang==1,"拍攝照片","Take a picture"]] SetCaption[button2,If[lang==1,"清除照片","Clear picture"]]"/>
<font serif="false" sizeM="1.4" size="10" style="0"/>
</element>
<expression label="text4" exp=""" + (string / rod) + """ />
<element type="text" label="text4">
<show object="false" label="false" ev="40"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="8"/>
<labelMode val="0"/>
<decimals val="3"/>
<absoluteScreenLocation x="245" y="184"/>
</element>
<expression label="text1" exp=""\frac{" + (LaTeX[string]) + "}{" + (LaTeX[rod]) + "} =\textcolor{red}{ " + (LaTeX[text4]) + "}"" />
<element type="text" label="text1">
<show object="true" label="true" ev="8"/>
<condition showObject="showSinRatio"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="10" style="0"/>
<decimals val="2"/>
<absoluteScreenLocation x="42" y="132"/>
</element>
<expression label="text3" exp=""\text{sin}" + (LaTeX[α]) + "=\textcolor{red}{" + (LaTeX[text4]) + " }"" />
<element type="text" label="text3">
<show object="true" label="false" ev="8"/>
<condition showObject="showSin"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="9"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="10" style="0"/>
<absoluteScreenLocation x="726" y="42"/>
</element>
<expression label="text4'" exp=""" + (string' / rod') + """ />
<element type="text" label="text4'">
<show object="false" label="true" ev="40"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="8"/>
<labelMode val="0"/>
<decimals val="3"/>
<absoluteScreenLocation x="235" y="226"/>
</element>
<expression label="text2" exp=""\frac{" + (LaTeX[string']) + "}{" + (LaTeX[rod']) + "}=\textcolor{Thistle}{" + (LaTeX[text4']) + "}"" />
<element type="text" label="text2">
<show object="true" label="false" ev="9"/>
<condition showObject="showSinRatio"/>
<objColor r="128" g="128" b="128" alpha="0"/>
<layer val="9"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="1.4" size="10" style="0"/>
<decimals val="2"/>
<absoluteScreenLocation x="300" y="132"/>
</element>
</construction>
</geogebra>