跳转到内容

cracktransform

vector  cracktransform(int trs, int xyz, int c, vector pivot, vector pivot_rotate, matrix xform)

vector  cracktransform(int trs, int xyz, int c, vector pivot, matrix xform)

根据参数c的值,返回变换矩阵(xform)中的平移分量(c=0)、旋转分量(c=1c=4)、缩放分量(c=2)或剪切分量(c=3)。该函数使用给定的变换顺序(trs)和旋转顺序(xyz)、枢轴点(pivot)以及可选的枢轴旋转(pr)来计算返回值。

注意 当c=1时,返回的旋转角度以度为单位,而许多其他VEX函数使用弧度制。 您可以使用radians VEX函数将角度值向量转换为弧度值向量。 例如:vector angles = radians(cracktransform(XFORM_TRS, XFORM_XYZ, 1, {0,0,0}, M));

注意 当c=4时,返回的旋转角度以弧度为单位。

trs

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

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

xyz

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

常量名称旋转顺序
XFORM_XYZX, Y, Z旋转顺序
XFORM_XZYX, Z, Y旋转顺序
XFORM_YXZY, X, Z旋转顺序
XFORM_YZXY, Z, X旋转顺序
XFORM_ZXYZ, X, Y旋转顺序
XFORM_ZYXZ, Y, X旋转顺序

void  cracktransform(int trs, int xyz, vector pivot, vector pivot_rotate, matrix xform, vector &t, vector &r, vector &s, vector &shears)

分别将xform的平移、旋转、缩放和剪切分量返回到t、r、s和shears中。 如果需要获取多个分量,使用此重载版本比多次调用其他函数签名更高效。

void  cracktransform(int trs, int xyz, vector pivot, matrix xform, vector &t, vector &r, vector &s)

分别将xform的平移、旋转和缩放分量返回到t、r和s中。 此重载版本不支持枢轴旋转(pivot_rotate)或剪切分量(shears)。 如果需要获取多个分量,使用此重载版本比多次调用其他函数签名更高效。