#01 ふれてみよう高校数学 幾何と図形

三角比の定義——辺の比を角度で表す

三角比とは何か

たとえば、建物の高さを測りたいとします。建物の根元から10メートル離れた場所に立って、てっぺんを見上げると角度が30°だったとします。このとき建物の高さは何メートルでしょうか?

直接測るのは大変ですが、三角比という道具を使えば計算できます。

「角度から辺の比を取り出す道具」——それが三角比の本質です。

直角三角形を思い浮かべてください。角度 θ が決まれば、三角形の大きさに関係なく辺の比は常に一定になります。小さな三角形でも大きな三角形でも、同じ角度なら同じ比になります。この「比の一定性」を関数として名前をつけたのが sin(サイン)、cos(コサイン)、tan(タンジェント)です。

定義:直角三角形から

角 θ に注目した直角三角形で、

  • 対辺(opposite):θ の向かい側の辺
  • 隣辺(adjacent):θ に隣接する辺(斜辺でないほう)
  • 斜辺(hypotenuse):直角の向かい側の辺(最も長い)

とすると、三角比の定義は次のとおりです。

sinθ=対辺斜辺,cosθ=隣辺斜辺,tanθ=対辺隣辺\sin\theta = \frac{\text{対辺}}{\text{斜辺}}, \quad \cos\theta = \frac{\text{隣辺}}{\text{斜辺}}, \quad \tan\theta = \frac{\text{対辺}}{\text{隣辺}}

冒頭の建物の例で言うと、tan30°=建物の高さ10m\tan 30° = \frac{\text{建物の高さ}}{\text{10m}} なので、高さ =10×tan30°= 10 \times \tan 30° で求められます。

覚え方のヒント

「SOH-CAH-TOA」という英語の語呂合わせが世界的に有名ですが、日本語なら

正弦(せいげん)= sin余弦(よげん)= cos正接(せいせつ)= tan

と漢字名も合わせて覚えると、後々の公式との結びつきがスムーズになります。

インタラクティブ図解①:角度 θ を動かす

マウスを左右に動かすと角度 θ が変わります。三辺の比と数値がリアルタイムに更新されるので、角度と比の関係を体感してください。θ が大きくなると「対辺(緑)」が伸び、「隣辺(紫)」が縮まるのが確認できます。

マウスを左右に動かして角度 θ を変えてみよう

var cx = 300, cy = 200;
var r = 140;

function loop() {
ctx.clearRect(0, 0, W, H);

// θ: 5° to 85° mapped from mouse x
var theta = 5 + (mx / W) * 80;
var rad = theta * Math.PI / 180;

var ax = cx, ay = cy;
var bx = cx + r * Math.cos(rad), by = cy - r * Math.sin(rad);
var cx2 = cx + r * Math.cos(rad), cy2 = cy;

// 直角マーク
ctx.strokeStyle = '#555';
ctx.lineWidth = 1;
ctx.strokeRect(cx2 - 10, cy2 - 10, 10, 10);

// 三角形
ctx.beginPath();
ctx.moveTo(ax, ay);
ctx.lineTo(bx, by);
ctx.lineTo(cx2, cy2);
ctx.closePath();
ctx.strokeStyle = '#58a6ff';
ctx.lineWidth = 2.5;
ctx.stroke();

// 斜辺ハイライト
ctx.beginPath();
ctx.moveTo(ax, ay);
ctx.lineTo(bx, by);
ctx.strokeStyle = '#f0883e';
ctx.lineWidth = 3;
ctx.stroke();

// 対辺ハイライト
ctx.beginPath();
ctx.moveTo(bx, by);
ctx.lineTo(cx2, cy2);
ctx.strokeStyle = '#56d364';
ctx.lineWidth = 3;
ctx.stroke();

// 隣辺ハイライト
ctx.beginPath();
ctx.moveTo(ax, ay);
ctx.lineTo(cx2, cy2);
ctx.strokeStyle = '#bc8cff';
ctx.lineWidth = 3;
ctx.stroke();

// 角度弧
ctx.beginPath();
ctx.arc(ax, ay, 28, -rad, 0);
ctx.strokeStyle = '#ffa657';
ctx.lineWidth = 2;
ctx.stroke();

// θ ラベル
ctx.fillStyle = '#ffa657';
ctx.font = 'bold 16px serif';
ctx.fillText('θ = ' + theta.toFixed(1) + '°', ax + 35, ay - 6);

// 辺ラベル
ctx.font = '13px sans-serif';
// 斜辺
var mx2 = (ax + bx) / 2, my2 = (ay + by) / 2;
ctx.fillStyle = '#f0883e';
ctx.fillText('斜辺', mx2 - 40, my2);
// 対辺
ctx.fillStyle = '#56d364';
ctx.fillText('対辺', cx2 + 6, (by + cy2) / 2);
// 隣辺
ctx.fillStyle = '#bc8cff';
ctx.fillText('隣辺', (ax + cx2) / 2 - 10, cy2 + 18);

// 値表示
var sinV = Math.sin(rad).toFixed(3);
var cosV = Math.cos(rad).toFixed(3);
var tanV = Math.tan(rad).toFixed(3);

ctx.fillStyle = '#e6edf3';
ctx.font = 'bold 14px monospace';
ctx.fillText('sin θ = ' + sinV, 20, 30);
ctx.fillText('cos θ = ' + cosV, 20, 52);
ctx.fillText('tan θ = ' + tanV, 20, 74);

// sin² + cos² = 1 確認
var check = (Math.pow(Math.sin(rad),2) + Math.pow(Math.cos(rad),2)).toFixed(4);
ctx.fillStyle = '#79c0ff';
ctx.font = '12px monospace';
ctx.fillText('sin²θ + cos²θ = ' + check, 20, 100);

requestAnimationFrame(loop);
}
loop();

重要な恒等式

三角比の定義から、次の基本恒等式が直接導けます。

sin2θ+cos2θ=1\sin^2\theta + \cos^2\theta = 1

これは直角三角形でピタゴラスの定理 a2+b2=c2a^2 + b^2 = c^2 を両辺を c2c^2 で割ったものに他なりません。「対辺の2乗 ÷ 斜辺の2乗」+「隣辺の2乗 ÷ 斜辺の2乗」は必ず1になります。

tanθ=sinθcosθ\tan\theta = \frac{\sin\theta}{\cos\theta}

この二つだけで、多くの三角関数の計算が進められます。

特別な角度の三角比

日常でよく登場する角度の値は暗記しておくと便利です。

θsin θcos θtan θ
010
30°1/2√3/21/√3
45°1/√21/√21
60°√3/21/2√3
90°10未定義

30°-60°-90° の三角形は辺の比が 1 : √3 : 2、45°-45°-90° は 1 : 1 : √2 です。

覚え方:sin は「0°から90°にかけて0から1へ増える」、cos は「0°から90°にかけて1から0へ減る」と押さえると、表を丸暗記しなくても推測できます。

インタラクティブ図解②:単位円と三角比

単位円(半径 1 の円)の上で θ を動かすと、cos θ が x 座標、sin θ が y 座標になることが視覚的にわかります。点 P が円の上を動くとき、その x 座標が cos θ、y 座標が sin θです。

単位円:cos θ = x 座標、sin θ = y 座標

var cx = 200, cy = 170, r = 130;

function loop() {
ctx.clearRect(0, 0, W, H);

var theta = ((mx / W) * 360) * Math.PI / 180;

// 軸
ctx.strokeStyle = '#30363d';
ctx.lineWidth = 1;
ctx.beginPath(); ctx.moveTo(cx - 160, cy); ctx.lineTo(cx + 160, cy); ctx.stroke();
ctx.beginPath(); ctx.moveTo(cx, cy - 160); ctx.lineTo(cx, cy + 160); ctx.stroke();

// 単位円
ctx.beginPath();
ctx.arc(cx, cy, r, 0, Math.PI * 2);
ctx.strokeStyle = '#30363d';
ctx.lineWidth = 1.5;
ctx.stroke();

var px = cx + r * Math.cos(theta);
var py = cy - r * Math.sin(theta);

// cos: x軸への投影
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.lineTo(px, cy);
ctx.strokeStyle = '#bc8cff';
ctx.lineWidth = 3;
ctx.stroke();

// sin: y軸への投影
ctx.beginPath();
ctx.moveTo(px, cy);
ctx.lineTo(px, py);
ctx.strokeStyle = '#56d364';
ctx.lineWidth = 3;
ctx.stroke();

// 半径
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.lineTo(px, py);
ctx.strokeStyle = '#f0883e';
ctx.lineWidth = 2.5;
ctx.stroke();

// 角度弧
ctx.beginPath();
ctx.arc(cx, cy, 22, -theta, 0);
ctx.strokeStyle = '#ffa657';
ctx.lineWidth = 2;
ctx.stroke();

// 点 P
ctx.beginPath();
ctx.arc(px, py, 6, 0, Math.PI * 2);
ctx.fillStyle = '#f0883e';
ctx.fill();

// ラベル
ctx.font = '13px sans-serif';
ctx.fillStyle = '#bc8cff';
ctx.fillText('cos θ', cx + (px - cx)/2 - 18, cy + 18);
ctx.fillStyle = '#56d364';
ctx.fillText('sin θ', px + 6, cy - (cy - py)/2);

// 軸ラベル
ctx.fillStyle = '#8b949e';
ctx.font = '13px sans-serif';
ctx.fillText('x', cx + 155, cy - 6);
ctx.fillText('y', cx + 6, cy - 150);
ctx.fillText('1', cx + r - 8, cy + 16);
ctx.fillText('-1', cx - r - 18, cy + 16);

// 数値
var deg = (theta * 180 / Math.PI);
deg = ((deg % 360) + 360) % 360;
ctx.fillStyle = '#e6edf3';
ctx.font = 'bold 14px monospace';
ctx.fillText('θ = ' + deg.toFixed(1) + '°', W - 220, 30);
ctx.fillStyle = '#bc8cff';
ctx.fillText('cos θ = ' + Math.cos(theta).toFixed(3), W - 220, 54);
ctx.fillStyle = '#56d364';
ctx.fillText('sin θ = ' + Math.sin(theta).toFixed(3), W - 220, 78);

requestAnimationFrame(loop);
}
loop();

単位円が教えてくれること

単位円を使うと、0°〜360° のすべての角度で三角比が定義できます。直角三角形では90°を超える角度は扱えませんでしたが、単位円を使うと:

  • 0°〜90°(第1象限):sin > 0、cos > 0(両方プラス)
  • 90° < θ < 180°(第2象限):sin > 0、cos < 0(sinだけプラス)
  • 180° < θ < 270°(第3象限):sin < 0、cos < 0(両方マイナス)
  • 270° < θ < 360°(第4象限):sin < 0、cos > 0(cosだけプラス)

三角比は直角三角形を飛び出して、あらゆる角度に拡張できるのです。これが後に学ぶ三角関数(サイン波・コサイン波)への入り口になります。

まとめ

  • sin・cos・tan は「角度が決まれば辺の比が決まる」という直角三角形の性質を数値化したもの
  • sinθ=対辺斜辺\sin\theta = \frac{\text{対辺}}{\text{斜辺}}cosθ=隣辺斜辺\cos\theta = \frac{\text{隣辺}}{\text{斜辺}}tanθ=対辺隣辺\tan\theta = \frac{\text{対辺}}{\text{隣辺}}
  • 基本恒等式 sin2θ+cos2θ=1\sin^2\theta + \cos^2\theta = 1 はピタゴラスの定理そのもの
  • 単位円では cos θ が x 座標、sin θ が y 座標になる——これで360°全てに拡張できる
  • 特別角(30°・45°・60°)の値はよく出るので覚えておくと便利

次回は三角比を使って「高さと距離を求める」実用的な問題に挑戦します。