跳转到内容

maketransform

matrix3  maketransform(vector z轴, vector y轴)

matrix3  maketransform(int 旋转顺序, vector 角度)

matrix  maketransform(vector z轴, vector y轴, vector 平移)

matrix  maketransform(int 变换顺序, int 旋转顺序, vector 平移, vector 旋转)

matrix  maketransform(int 变换顺序, int 旋转顺序, vector 平移, vector 旋转, vector 缩放)

matrix  maketransform(int 变换顺序, int 旋转顺序, vector 平移, vector 旋转, vector 缩放, vector 枢轴)

matrix  maketransform(int 变换顺序, int 旋转顺序, vector 平移, vector 旋转, vector 缩放, vector 枢轴, vector 枢轴旋转)

matrix  maketransform(int 变换顺序, int 旋转顺序, vector 平移, vector 旋转, vector 缩放, vector 枢轴, vector 枢轴旋转, vector 切变)

构建3×3或4×4变换矩阵。

maketransform(int 变换顺序, ...) 根据指定的变换顺序(trs)、旋转顺序(xyz)、表示平移(t)、旋转(r)、缩放(s)的向量(可选包括枢轴(p)、枢轴旋转(pr)和切变(shears)),构建通用的4×4变换矩阵。

maketransform(int 旋转顺序, vector 角度) 使用与maketransform(int 变换顺序, ...)相同的规则构建3×3旋转矩阵,但仅使用旋转参数。

maketransform(vector z轴, y轴, ...) 构建3×3或4×4变换矩阵。矩阵将被构造为z轴将变换到指定的z轴方向,并使用给定的上向量(y轴)。因此,maketransform({0,0,1}, {0,1,0})将生成单位矩阵。返回4×4变换矩阵的版本会将平移应用到4×4矩阵中。此函数与lookat函数非常相似。传入的向量不会被归一化,意味着在构建变换时应保留缩放比例。

注意 与大多数VEX函数不同,此函数期望旋转角度以为单位,而不是弧度。

变换顺序

以下变换顺序常量之一,可从$HFS/houdini/vex/include/math.h导入。

常量名称变换顺序
XFORM_SRT缩放、旋转、平移
XFORM_STR缩放、平移、旋转
XFORM_RST旋转、缩放、平移
XFORM_RTS旋转、平移、缩放
XFORM_TSR平移、缩放、旋转
XFORM_TRS平移、旋转、缩放

旋转顺序

以下旋转顺序常量之一,可从$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