在单位圆上探索正弦和余弦比
几何画板及绘图内容加载中,请稍等……
①本范例演示如何在单位圆上通过角度展示正弦和余弦的几何意义;②涉及核心数学概念包括单位圆、三角函数、正弦和余弦比;③作图要点使用了Polygon, Zip, RemoveUndefined, Sort, Point, IndexOf, Sequence, Element, Translate, LaTeX, Segment, Angle, Length, TableText, CurveCartesian等GeoGebra命令和对象;④适合高中数学学生学习和理解三角函数的定义与性质。
GeoGebra 命令及参数
Polygon({Anchor1Box, Anchor1Box + u, Anchor1Box + u + (3.9 * v), Anchor1Box + (3.9 * v)}) → boxTemplateZip((((("\left(" * A) * ",") * B) * "\right)"), A, allCosVals, B, allSinVals) → allPointsDisplayRemoveUndefined(Sequence[If[Element[showRows, i], Element[allPointsDisplay, i]], i, 1, Length[allPointsDisplay]]) → displayPointsSort(Unique[Union[Sequence[i, i, 0, 360, 45], Sequence[i, i, 0, 360, 30]]]) → allAnglesZip(Rotate[(1, 0), A°, (0, 0)], A, allAngles) → allPointsPoint(allPoints) → PIndexOf(P, allPoints) → currIndxRemoveUndefined(Sequence[If[Element[showRows, i], If[currIndx ≟ i, "*", ""]], i, 1, Length[showRows]]) → rowPointerSequence(Translate[boxTemplate, Vector[(i * u)]], i, 0, Length[displayPoints]) → boxesElement(boxes, 2) → box1Element(boxes, 3) → box2Element(boxes, 4) → box3Element(boxes, 5) → box4Element(boxes, 6) → box5Element(boxes, 7) → box6Element(boxes, 8) → box7Element(boxes, 9) → box8Translate(boxTemplate, (2.5, 0)) → header2Element(allPoints, 1) → P1Element(allPoints, 2) → P2Element(allPoints, 3) → P3Element(allPoints, 4) → P4Element(allPoints, 5) → P5Element(allPoints, 6) → P6Element(allPoints, 7) → P7Element(allPoints, 8) → P8Element(allPoints, 9) → P9Element(allPoints, 10) → P10Element(allPoints, 11) → P11Element(allPoints, 12) → P12Element(allPoints, 13) → P13Element(allPoints, 14) → P14Element(allPoints, 15) → P15Element(allPoints, 16) → P16LaTeX("\text{\textbf{Question: }The point \(P\) is the intersection of the terminal arm of \(\angle θ\) and the unit circle.\\How are the coordinates of \(P\) related to the sine and cosine ratios of θ?}") → MainInstrucLaTeX("\text{\textbf{Instructions: }Move the point \(P\) to complete the table of values.}") → SpecInstrucSegment(P, (x(P), 0)) → oppositeSideAngle(Vector[(1, 0)], Vector[P]) → angleALaTeX("\text{Unit Circle}") → lblUnitCircleZip(((spacer * A) * "°"), A, allAngles) → allAngleDisplayRemoveUndefined(Sequence[If[Element[showRows, i], Element[allSinVals, i]], i, 1, Length[allSinVals]]) → displaySinValsRemoveUndefined(Sequence[If[Element[showRows, i], Element[allCosVals, i]], i, 1, Length[allCosVals]]) → displayCosValsRemoveUndefined(Sequence[If[Element[showRows, i], Element[allAngleDisplay, i]], i, 1, Length[allAngleDisplay]]) → displayAnglesLength(displayPoints) → testLaTeX(("P" * Element[allPointsDisplay, currIndx])) → lblPointTableText({Join[{{titleTheta}, displayAngles}], Join[{{titlePoints}, displayPoints}], Join[{{titleSin}, displaySinVals}], Join[{{titleCos}, displayCosVals}], Join[{{""}}]}, "|011100vc") → tableAZip(Rotate[A, Element[allAngles, currIndx]°, (0, 0)], A, {(0.25, -0.05), (0.3, 0), (0.35, -0.05)}) → chevronPointsSequence(Segment[Element[chevronPoints, i], Element[chevronPoints, i + 1]], i, 1, 2) → chevronCurveCartesian((0.3 * cos(((2 * π) * t))), (0.3 * sin(((2 * π) * t))), t, 0, Element[allAngles, currIndx] / 360) → angleCurvePolygon({(0, 0), (0.1, 0), (0.1, 0.1), (0, 0.1)}) → rightBoxTranslate(rightBox, (If[x(P) < 0, x(P), x(P) - 0.1], If[y(P) < 0, -0.1, 0])) → showRight