「サインコサインタンジェントとは一体何のために学ぶのか?」という疑問に対する最も雄弁な答えは、現代のデジタルエンターテインメントの中にあります。取材に応じた国内大手ゲームスタジオの3Dグラフィックプログラマーは次のように断言します。
「三角関数を理解していないプログラマーは、画面上のキャラクターを自由に歩かせることすらできません。UnityやUnreal Engineといったゲームエンジンには高度なライブラリが用意されていますが、カメラの画角計算や敵キャラクターの視界判定を行うコードの裏側では、毎フレーム何万回もの三角関数計算が走っています」
具体的なプログラミングやゲーム開発への応用例として、次のような処理が日常的に行われています。
1つ目は、敵キャラクターをプレイヤーの方向へ滑らかに旋回させる処理です。2次元平面上のプレイヤーの座標(X1, Y1)と敵の座標(X2, Y2)の差分から、逆タンジェント関数(atan2)を用いることで、敵が向くべき正確な角度が一瞬で導き出されます。
2つ目は、3Dアクションゲームにおけるカメラの追従です。プレイヤーの背後から一定の距離を保ちつつ、スティック操作に応じて上下左右に回り込むカメラの座標は、球面座標系と呼ばれるサインとコサインの掛け合わせによってリアルタイムに計算されています。
そして実社会における三角関数の実社会での使い道は、エンタメにとどまりません。三角関数はいつ使うのか理由を突き詰めていくと、以下の現実世界における社会インフラに行き当たります。
- GPS・カーナビゲーションの測位技術:複数の人工衛星からの電波到達時間の差をもとに、三辺測量の原理と三角関数を用いて地球上の現在位置を経度・緯度・高度ミリ単位で特定する。
- 音声ファイル(MP3)や画像(JPEG)のデータ圧縮:あらゆる複雑な波形を異なる周波数のサイン波・コサイン波の足し合わせとして分解・再構成する「フーリエ変換」により、大容量データを劇的に圧縮する。
- スマートフォンの画面回転・手ブレ補正:端末に内蔵されたジャイロセンサーが傾き角度を検出し、三角関数を用いて画面の描画方向やカメラレンズの位置を瞬時に物理補正する。
普段何気なく手元で操作しているスマートフォンの画面の裏側で、サインとコサインは休むことなく稼働し続けているのです。