三角関数(Sin Cos)の基本

ページ名:三角関数

まず

「三角関数ってなんやねん。sinf() cosf()使わなくてもいいやん!!」

って思っている人は必ず読んでください。


そもそも、sin cosをゲーム制作で利用しなければならない理由があります。
それは斜め移動時の高速化防止のためです


結論はこれです。


円を利用して全ての方向へ均一に動かすのが左
ただのXとYの足し算をしたものが右です。
明らかに右がダメなことがわかりますよね。(RTAで斜め移動使われちゃう)


それでは、その円について図解で説明します。
今回は2D座標で説明しますね。


真ん中機体が自機だとします。
横がX座標、縦がY座標。0から矢印の方向が正の方向です。


それでは、プレイヤーの移動についての式はこのようになりますね。


ここで「D3DX_PI」は、数学で言う「3.14(π)」を表します。
何故、()の中身を変えるだけで移動方向が変わるのか説明します。

まず、青がsinf緑がcosf です。
線グラフを思い出してみてください。
D3DX_PI/0の値を入れると、Y軸には働いて、X軸には何も力が働きませんね。(縦移動)
逆に±D3DX_PI/2の値を入れると、X軸には働いて、Y軸には何も力が働きません。(横移動)
大事なのはこの円の画像です。
ではなぜこのようになるのでしょうか。


まずこの画像をみてください。※簡易自作のため"完全に正しいグラフ"ではありません。


SinカーブとCosカーブってやつです(多分聞いたことありますよね)
sinfは青,cosfは緑です。
先ほどと同様に、()の中身にD3DX_PI/0の値を入れてみましょう。

少し見えにくいですが、赤枠の値になり、Xは0Yは±1になりますよね。
それを簡易化したのがこの円の画像です。

これでsinf(),cosf()に値を入れたら、XY軸に働く力(方向)がわかりますね。



以上「三角関数の基本」でした。


次のページ「エフェクトパーティクル

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧