正值外国春假,一家人打算到 "半圆港湾" 度假。他们乘船从港湾西端出发。

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\begin{CJK}{UTF8}{gkai}
\pgfmathsetmacro\t{68} % angle t in DEGREES
\node[fill, circle, minimum size=5pt, inner sep=0pt, label={below left:小船位置}] (P) at (-0.5,0) {}; % "west" ~ oPp. side
\coordinate (H) at (2*\t:0.5); % ~ Hyp.
\coordinate (A) at (0.5, 0); % "east" ~ Adj. side
\fill[blue, opacity=0.5] (P) -- (A) arc (0:2*\t:0.5) -- cycle; % "sea"
\draw[dashed, opacity=0.5, shorten >=-3cm, shorten <=-1cm] (P) -- (H)
node[pos=2, above=1cm, sloped] {不可见的区域};
\draw (A) arc (0:2*\t:0.5) node[sloped, above, pos=0.5]{可见的半圆港湾部分}; % semicircle arc w/ diam. 1
\draw[dashed] (P) arc (180:2*\t:0.5);
\node[fill, circle, yellow, minimum size=3pt, inner sep=0pt] (O) at (0, 0) {}; % origin
\draw[yellow] (P) -- (A) node [midway, below] {$\text{直径长} = 1$};
\draw[blue!20, thick] (A) -- (H) node [midway, above, sloped] {$\text{正面对着小船乘客的弦}$};
\draw[red!60, dashed, thick] (P) -- (H) node [midway, above=0.5cm, sloped] {$\text{余下的弦}$};
\pic [draw, ->, "$\theta$", angle radius=10pt, angle eccentricity=2] {angle = A--P--H};
\pic [draw, angle radius=10pt] {right angle= P--H--A};
% label node with theta in degrees
\node[draw, above] at (current bounding box.north west) {$\theta = \t\degree$};
\end{CJK}
\end{tikzpicture}
上面蓝色区域代表乘客见到的海。有一条虚(想的)斜线(,代表船上乘客的视野范围),和下面横线形成角 θ,分割出两片区域:
- 左边的区域 "不可见",以半透明显示
- 虚斜线右边以及下面横线上面的区域 "可见"
虚斜线和半圆相交于一点,将这点与港湾东端连成一线,形成一条弦线(圆周上两点连成的线段)
这条弦正面对着小船乘客,我们叫它 "正弦"
除此之外,还有一条弦线(以虚线示),和刚刚虚斜线重叠了,我们叫它 "余下的弦",或更简単一点,"余弦"
两条弦形成一直角,和半径形成一个直角三角形
这个直角三角形中:
- 正弦(与角 θ 相对)边长记作 "sin θ"
- 余弦(与角 θ 相邻)边长记作 "cos θ"

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\begin{CJK}{UTF8}{gkai}
\pgfmathsetmacro\t{68} % angle t in DEGREES
\node[fill, circle, minimum size=5pt, inner sep=0pt, label={below left:小船位置}] (P) at (-0.5,0) {}; % "west" ~ oPp. side
\coordinate (H) at (2*\t:0.5); % ~ Hyp.
\coordinate (A) at (0.5, 0); % "east" ~ Adj. side
\fill[blue, opacity=0.5] (P) -- (A) arc (0:2*\t:0.5) -- cycle; % "sea"
\draw[dashed, opacity=0.5, shorten >=-3cm, shorten <=-1cm] (P) -- (H)
node[pos=2, above=1cm, sloped] {不可见的区域};
\draw (A) arc (0:2*\t:0.5) node[sloped, above, pos=0.5]{可见的半圆港湾部分}; % semicircle arc w/ diam. 1
\draw[dashed] (P) arc (180:2*\t:0.5);
\node[fill, circle, yellow, minimum size=3pt, inner sep=0pt] (O) at (0, 0) {}; % origin
\draw[yellow] (P) -- (A) node [midway, below] {$\text{直径长} = 1$};
\draw[blue!20, thick] (A) -- (H) node [midway, above, sloped] {$\sin \theta$};
\draw[red!60, dashed, thick] (P) -- (H) node [midway, above=0.5cm, sloped] {$\cos \theta$};
\pic [draw, ->, "$\theta$", angle radius=10pt, angle eccentricity=2] {angle = A--P--H};
\pic [draw, angle radius=10pt] {right angle= P--H--A};
% label node with theta in degrees
\node[draw, above] at (current bounding box.north west) {$\theta = \t\degree$};
\end{CJK}
\end{tikzpicture}
ℹ️ "sin" 源自拉丁语 "sinus"。該拉丁詞的意思是 "港湾"。
🤔 这样理解 "sinus",便会受限于图中 "港湾" 的大小,θ 只能是锐角。
作结束本节前,我给出一种(在 "港湾" 內)对 "正切" 的解读
"切" 指的是 "切线"。想像将一个球体放在平的桌面上,正面看来像

\begin{tikzpicture}
\draw (0,0) circle (1);
\draw (-1,-1) -- (1,-1);
\end{tikzpicture}
下面的横线和圆形只相交于一点,这样的的线,我们称为 "圆形的切线"
"直线" (在欧几里得《几何原本》中)的定义沒有 "起点" 和 "终点",可以 "无限" 延伸
但船上乘客 "可见" 的 "切线" 部分,只限於下图中虚斜线右边和底下橫线以上的一段

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\begin{CJK}{UTF8}{gkai}
\pgfmathsetmacro\t{68} % angle t in DEGREES
\node[fill, circle, minimum size=5pt, inner sep=0pt, label={below left:小船位置}] (P) at (-0.5,0) {}; % "west" ~ oPp. side
\coordinate (H) at (2*\t:0.5); % ~ Hyp.
\coordinate (A) at (0.5, 0); % "east" ~ Adj. side
\coordinate (T) at (0.5, {tan(\t)}); % "Tangent" end pt
\fill[blue, opacity=0.5] (P) -- (A) arc (0:2*\t:0.5) -- cycle; % "sea"
\draw[dashed, opacity=0.5, shorten >=-3cm] (P) -- (T)
node[pos=0.5, above=1cm, sloped] {不可见的区域};
\draw (A) arc (0:2*\t:0.5) node[sloped, above, pos=0.5]{可见的半圆港湾部分}; % semicircle arc w/ diam. 1
\draw[dashed] (P) arc (180:2*\t:0.5);
\node[fill, circle, yellow, minimum size=3pt, inner sep=0pt] (O) at (0, 0) {}; % origin
\draw[yellow] (P) -- (A) node [midway, below] {$\text{直径长} = 1$};
\draw[blue!20, thick] (A) -- (H) node [midway, above, sloped] {$\sin \theta$};
\draw[red!60, dashed, thick] (P) -- (H) node [midway, above=0.5cm, sloped] {$\cos \theta$};
\pic [draw, ->, "$\theta$", angle radius=10pt, angle eccentricity=2] {angle = A--P--H};
\pic [draw, angle radius=10pt] {right angle= P--H--A};
\draw[yellow, thick] (A) -- (T)
node [midway, below, sloped] {$\text{``切线'' 长度} = \tan \theta$}; % "Tangent"
\pic [draw, yellow, angle radius=10pt] {right angle= T--A--P};
% label node with theta in degrees
\node[draw, above] at (current bounding box.north west) {$\theta = \t\degree$};
\end{CJK}
\end{tikzpicture}
"正切" 可以暫时看成 "正面对着船上乘客的切线",它的边长以 "tan θ" 表示
⚠️ 以上名称並非正式定义,只是个引子,方便记忆
想像上图是被印在一透明胶片上,翻转胶片並旋转,使得原来的虚线橫着。

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
% rotated and flipped
\begin{CJK}{UTF8}{gkai}
\pgfmathsetmacro\t{40} % angle t in DEGREES
\node[fill, circle, minimum size=5pt, inner sep=0pt, label={below left:小船位置}] (P) at (0,0) {}; % "west" ~ oPp. side
\coordinate (A) at (\t:1); % "east" ~ Adj. side
\coordinate (H) at (P-|A); % ~ Hyp.
\coordinate (T) at ({sec(\t)}, 0); % "Tangent" end pt
\fill[blue, opacity=0.5] (P) -- (A) arc (\t:-\t:0.5) -- cycle; % "sea"
\draw[dashed, opacity=0.5, shorten >=-3cm] (P) -- (T)
node[pos=0.5, below=0.5cm, sloped] {不可见的区域};
%\draw (A) arc (\t:-\t:0.5) node[sloped, above, pos=0.5]{可见的半圆港湾部分}; % semicircle arc w/ diam. 1
\draw[dashed] (P) arc (\t-180:-\t:0.5);
\node[fill, circle, yellow, minimum size=3pt, inner sep=0pt] (O) at (\t:0.5) {}; % origin
\draw[yellow] (P) -- (A) node [midway, above, sloped] {$\text{直径长} = 1$};
\draw[blue!20, thick] (A) -- (H) node [midway, below, sloped] {$\sin \theta$};
\draw[red!60, dashed, thick] (P) -- (H) node [midway, below=0.2cm] {$\cos \theta$};
\pic [draw, ->, "$\theta$", angle radius=10pt, angle eccentricity=2] {angle = H--P--A};
\pic [draw, angle radius=10pt] {right angle= P--H--A};
\draw[yellow, thick] (A) -- (T)
node [midway, above, sloped] {$\text{``切线'' 长度} = \tan \theta$}; % "Tangent"
\pic [draw, yellow, angle radius=10pt] {right angle= T--A--P};
% label node with theta in degrees
\node[draw, above] at (current bounding box.north west) {$\theta = \t\degree$};
\end{CJK}
\end{tikzpicture}
改変角度並观察:和「小船」位置连着的黃色边的长度永远为 1
固定「小船」位置(上图中的白圆点 ' • '),则「港口東端」(两条黃色线段的交叉点)为単位圆(以白圆点 ' • ' 为圆心,半径为 1 的圆)上的点


以単位圆上的点 A 的 x-坐标和 y-坐标分別作为 cos θ 和 sin θ 的定义。
上图中的 θ 为从正 x-轴逆时针旋转到 OA 的角度,θ 可以是任何实数
unit circle 150
\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\pgfmathsetmacro\t{150} % angle t in DEGREES
\coordinate[label=below left:$O$] (O) at (0, 0);
\coordinate[label=below:$H$] (H) at ({cos(\t)}, 0);
\coordinate[label=above:$A$] (A) at ({cos(\t)}, {sin(\t)});
\coordinate[label=below right:$E$] (E) at (1, 0);
\coordinate[label=above right:$T$] (T) at (1, {tan(\t)});
\draw (O) circle (1);
% axes
\draw[->] (-1.3, 0) -- (1.3, 0) node [right]{$x$};
\draw[->] (0, -1.3) -- (0, 1.3) node [above]{$y$};
\begin{scope}[thick]
% colored sides
\draw[blue!40] (O) -- (H) node [below, midway, seglen] {$\cos \theta$};
\draw[red!40] (H) -- (A) node [below, midway, sloped, seglen] {$\sin \theta$};
\draw[green] (E) -- (T) node [below, midway, sloped, seglen] {$\tan \theta$};
% angle decorations
\draw pic[seglen, draw, ->, "$\theta$", angle radius=0.3cm, angle eccentricity=1.8] {angle=E--O--A};
\draw (H) rectangle ++(-0.05, 0.05);
\draw (E) rectangle ++(-0.05, 0.05);
\end{scope}
% hypotenuse
\draw (O) -- (A) node [above left, midway] {$1$}
-- (T);
% node with theta in degrees
\node[draw, anchor=north west] at (current bounding box.north west) {$\theta = \t\degree$};
\end{tikzpicture}

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\pgfmathsetmacro\t{220} % angle t in DEGREES
\coordinate[label=below left:$O$] (O) at (0, 0);
\coordinate[label=below:$H$] (H) at ({cos(\t)}, 0);
\coordinate[label=above:$A$] (A) at ({cos(\t)}, {sin(\t)});
\coordinate[label=below right:$E$] (E) at (1, 0);
\coordinate[label=above right:$T$] (T) at (1, {tan(\t)});
\draw (O) circle (1);
% axes
\draw[->] (-1.3, 0) -- (1.3, 0) node [right]{$x$};
\draw[->] (0, -1.3) -- (0, 1.3) node [above]{$y$};
\begin{scope}[thick]
% colored sides
\draw[blue!40] (O) -- (H) node [below, midway, seglen] {$\cos \theta$};
\draw[red!40] (H) -- (A) node [below, midway, sloped, seglen] {$\sin \theta$};
\draw[green] (E) -- (T) node [below, midway, sloped, seglen] {$\tan \theta$};
% angle decorations
\draw pic[seglen, draw, ->, "$\theta$", angle radius=0.3cm, angle eccentricity=1.8] {angle=E--O--A};
\draw (H) rectangle ++(-0.05, 0.05);
\draw (E) rectangle ++(-0.05, 0.05);
\end{scope}
% hypotenuse
\draw (O) -- (A) node [above left, midway] {$1$}
-- (T);
% node with theta in degrees
\node[draw, anchor=north west] at (current bounding box.north west) {$\theta = \t\degree$};
\end{tikzpicture}
若 θ < 0,则旋转方向从「逆时针」改为「顺时针」

\begin{tikzpicture}[scale=6, seglen/.style={font=\small}]
\pgfmathsetmacro\t{-57} % angle t in DEGREES
\coordinate[label=below left:$O$] (O) at (0, 0);
\coordinate[label=below:$H$] (H) at ({cos(\t)}, 0);
\coordinate[label=above:$A$] (A) at ({cos(\t)}, {sin(\t)});
\coordinate[label=below right:$E$] (E) at (1, 0);
\coordinate[label=above right:$T$] (T) at (1, {tan(\t)});
\draw (O) circle (1);
% axes
\draw[->] (-1.3, 0) -- (1.3, 0) node [right]{$x$};
\draw[->] (0, -1.3) -- (0, 1.3) node [above]{$y$};
\begin{scope}[thick]
% colored sides
\draw[blue!40] (O) -- (H) node [above, midway, seglen] {$\cos \theta$};
\draw[red!40] (H) -- (A) node [below, midway, sloped, seglen] {$\sin \theta$};
\draw[green] (E) -- (T) node [below, midway, sloped, seglen] {$\tan \theta$};
% angle decorations
\draw pic[seglen, draw, <-, "$\theta$", angle radius=0.3cm, angle eccentricity=1.8] {angle=A--O--E};
\draw (H) rectangle ++(-0.05, 0.05);
\draw (E) rectangle ++(-0.05, 0.05);
\end{scope}
% hypotenuse
\draw (O) -- (A) node [above left, midway] {$1$}
-- (T);
% node with theta in degrees
\node[draw, anchor=north west] at (current bounding box.north west) {$\theta = \t\degree$};
\end{tikzpicture}
HKDSE CAST 图表
由以上几张图像,可以观察出一些三角函数的基础性质:
- 三角函数是周期函数
- 正弦(sin)和余弦(cos)函数的周期是 360°
- 正切(tan)函数的周期是 180°
- 商数关系:tan θ = sin θ / cos θ(當分母不为零时)
- 从毕氏公式看出平方关系:sin² θ + cos² θ = 1
- 余角关系:
- sin(90° − θ) = cos θ
- cos(90° − θ) = sin θ
- tan(90° − θ) = 1 / tan θ
- 补角关系:
- sin(180° − θ) = sin θ
- cos(180° − θ) = −cos θ
- tan(180° − θ) = −tan θ
💡 可以使用经典 "CAST" 图表,透过思考三角函数值何时为正数,辅助记忆三角函数公式