matrix3 maketransform(vector zaxis, vector yaxis)
matrix3 maketransform(int xyz, vector angles)
matrix maketransform(vector zaxis, vector yaxis, vector translate)
matrix maketransform(int trs, int xyz, vector t, vector r)
matrix maketransform(int trs, int xyz, vector t, vector r, vector s)
matrix maketransform(int trs, int xyz, vector t, vector r, vector s, vector p)
matrix maketransform(int trs, int xyz, vector t, vector r, vector s, vector p, vector pr)
matrix maketransform(int trs, int xyz, vector t, vector r, vector s, vector p, vector pr, vector shears)
3×3または4×4のトランスフォームマトリックスを構築します。
maketransform(int trs, ...)
は、指定したトランスフォーメーション順(trs)、回転順(xyz)、移動を意味するベクトル(t)、
回転を意味するベクトル(r)、スケールを意味するベクトル(s)(さらにオプションでピボット(p)、ピボット回転(pr)、シアー(shears))を指定して、一般的な4×4トランスフォームマトリックスを構築します。
maketransform(int xyz, vector angles)
は、maketransform(int trs, ...)
と同じルールを使用するものの、回転パラメータのみを使用して3×3回転マトリックスを構築します。
maketransform(vector zaxis, yaxis, ...)
は、3×3または4×4のトランスフォームマトリックスを構築します。
マトリックスは、Z軸が、指定したUpベクトル(yaxis)と一緒に指定したzaxisにトランスフォームされるように構築されます。
そのため、maketransform({0,0,1}, {0,1,0})は単位行列になります。4×4のトランスフォームを返すバージョンの関数は、移動量を4×4マトリックスに適用します。
この関数は、lookat関数と非常に似ています。関数に渡すベクトルは、 正規化されません 。つまり、スケールがトランスフォームの構築で保持されるはずです。
Note
ほとんどのVEX関数とは違い、この関数は、回転にラジアンではなく 度 を指定します。
trs
以下に載せているトランスフォーム順序定数のどれか。
これらの定数は$HFS/houdini/vex/include/math.h
から取り込むことができます。
定数名 |
トランスフォーム順序 |
---|---|
XFORM_SRT |
Scale, Rotate, Translate |
XFORM_STR |
Scale, Translate, Rotate |
XFORM_RST |
Rotate, Scale, Translate |
XFORM_RTS |
Rotate, Translate, Scale |
XFORM_TSR |
Translate, Scale, Rotate |
XFORM_TRS |
Translate, Rotate, Scale |
xyz
以下に載せている回転順序定数のどれか。
これらの定数は$HFS/houdini/vex/include/math.h
から取り込むことができます。
定数名 |
回転順序 |
---|---|
XFORM_XYZ |
回転順序 X, Y, Z |
XFORM_XZY |
回転順序 X, Z, Y |
XFORM_YXZ |
回転順序 Y, X, Z |
XFORM_YZX |
回転順序 Y, Z, X |
XFORM_ZXY |
回転順序 Z, X, Y |
XFORM_ZYX |
回転順序 Z, Y, X |
matrix |
|