ベクトルというと、高校数学で習った!という方が多いと思いますが、実は3DCGとも密接な関係にある単語になっています。今回は3DCGにどの様に関係しているのか学んでいきましょう。
ここではベクトルについて解説していきます。
ベクトル
- ベクトルの詳細
- Mayaでのベクトルの活用
ベクトルの詳細
ベクトルとは、向きと大きさを持つ量のことです。 有向線分で表され、平面や空間上における力や速度、加速度などはベクトルで表されます。
始点を A、終点を B とするベクトルを「→ A B」と書き表し、「AB ベクトル」と読みます。また、このベクトル全体を「 ⃗ a」のように一つの文字で書き表すこともあります。
Mayaでのベクトルの活用
一見するとMayaとベクトルは関係ないのでは?と思う方も多々いるかと思います。ですが事実は逆です。ベクトルに限らず、数学や物理など様々な学問が関わっています。今回、ベクトルがどの様に関係するのか一例を挙げながら、簡単に説明していきたいと思います。
複数ベクトルの織りなす角度を求める
では二つのベクトルから織りなされる角度を導き出していきましょう。一つを基準のベクトル($defaultAimVector)とし、現在のベクトルを「$aimVector」とし比較をします。
三角関数を使って考えていきましょう。下記の画像の様に限定をOとし2点をAとBとします。A迄のベクトルから垂直に下に実線を引いた場所をB’とすると、cosθ=OB’/OAと表す事が出来るので、逆三角関数(acos)が使えるため、角度θを求める事が出来ます。
※ベクトルAは単位ベクトルにしてあるので長さ1と仮定します。
OB’の長さがわからないためOAの長さを使って求めていきましょう。ベクトルAの内積を下記の図の様に表していき
辺OB’の長さを表します。
最後にExpressionに表し直すと、float $dotProd = dot($defaultAimVector,$aimVector);となり、角度を求める式はfloat $rotateAngle = acosd($dotProd);となります。
以上になります。