api
Vec3クラス / Vec3Viewクラス
3次元のベクトルを表すクラスです.(2次元のベクトルとしても使えます)
コンストラクタ
new Vec3(x,y,z)
- x,y,zを要素にもつベクトルを作成します(zは省略可能)
new Vec3View(target, keys)
- オブジェクトtarget の3つのフィールドをx,y,zの要素として扱うVec3Viewオブジェクトを作成します.
- keys にはx,y,z要素となるフィールド名を {x:x_key, y:y_key,z:z_key}という形式で渡します.
- x_key, y_key, z_keyはそれぞれx,y,z成分をあらわす,targetオブジェクトのフィールド名です
- keysを省略すると
{x:"x",y:"y",z:"z"}
です.
- Vec3ViewオブジェクトはVec3オブジェクトと同様に操作できます.
- Vec3Viewオブジェクトに対して変更を行うとtargetオブジェクトの該当フィールドが変更されます.
- BaseActorオブジェクトの
position
フィールドはそのBaseActorオブジェクトのx,y,zを変更できるVec3Viewオブジェクトとして自動的に初期化されます.
プロパティ
- x,y,z
- length
- ベクトルの長さを表します
- 代入すると,向きを変えずに長さを変更します.
メソッド
※以下の引数において、vおよびaxisはx,y,zをフィールドに持つオブジェクト(Vec3オブジェクトも含む)を表し,それ以外の引数は数値を表します。
※「破壊的に」とは,このオブジェクト自身のx,y,z成分を書き換えることを意味します.
- add(x,y,z)
- このベクトルとベクトル(x,y,z)を加算した新しいベクトルを返します.
- add(v)
- このベクトルとベクトルvを加算した新しいベクトルを返します.
- addX(x,y,z)
- このベクトルにベクトル(x,y,z)を破壊的に加算し,このベクトルを返します.
- addX(v)
- このベクトルにベクトルvを破壊的に加算し,このベクトルを返します.
- sub(x,y,z)
- このベクトルからベクトル(x,y,z)を減算した新しいベクトルを返します.
- sub(v)
- このベクトルとベクトルvを減算した新しいベクトルを返します.
- subX(x,y,z)
- このベクトルにベクトル(x,y,z)を破壊的に減算し,このベクトルを返します.
- subX(v)
- このベクトルにベクトルvを破壊的に減算し,このベクトルを返します.
- mul(k)
- mulX(k)
- このベクトルを破壊的にk倍し,このベクトルを返します.
- div(k)
- このベクトルを1/k倍した新しいベクトルを返します.
- divX(k)
- このベクトルを破壊的に1/k倍し,このベクトルを返します.
- normalize(len)
- このベクトルと同じ向きで長さがlen(省略すると1)の新しいベクトルを返します.
- normalizeX(len)
- このベクトルの長さを,向きを変えずにlen(省略すると1)に破壊的に変更し,このベクトルを返します.
- innerProduct(x,y,z)
- このベクトルとベクトル(x,y,z)との内積を返します.
- innerProduct(v)
- product(x,y,z)
- このベクトルとベクトル(x,y,z)との外積をあらわす新しいベクトルを返します.
- product(v)
- このベクトルとベクトルvとの外積をあらわす新しいベクトルを返します.
- ※2018-0807以前のバージョンでは「ベクトルv」と「このベクトル」の順序で計算していました.
- rotate(deg, axis)
- このベクトルをaxisを軸にdeg度回転した新しいベクトルを返します.
- axisを省略すると(0,0,1)になり,x,y成分の回転を行います
- rotateX(deg, axis)
- このベクトルをaxisを軸にdeg度破壊的に回転させ,このベクトルを返します.
- axisを省略すると(0,0,-1)になり,x,y成分の回転を行います
- Tonyuの通常の座標系では,deg度の右回転になります
- ※2018-0807以前のバージョンでは,axisの省略値は(0,0,1)でした.
- set(x,y,z)
- このベクトルに(x,y,z)の内容を破壊的にコピーします.
- set(v)
Backlink