VEX —— Functions|Conversion

目录

atof —— 将字符串转化为浮点

atoi —— 将字符串转化为整数

degrees —— 将弧度转化为角度

radians —— 将角度转化为弧度

hsvtorgb —— 将颜色空间从HSV转化为RGB

rgbtohsv —— 将颜色空间从RGB转化为HSV

rgbtoxyz —— 将线性sRGB转化为CIE XYZ

xyztorgb —— 将CIE XYZ转化为线性sRGB

serialize —— 将vector/matrix数组展平为浮点数组

unserialize —— 将展平的浮点数组转化为vector/matrix数组

cracktransform —— 依据c值返回xform的特定分量

eulertoquaternion —— 从欧拉角创建表示四元数的vector4

quaterniontoeuler —— 从表示四元数的vector4创建欧拉角

qconvert —— 将表示四元数的vector4转化为matrix3


atof —— 将字符串转化为浮点

float atof(string str)
  • 忽略空格;
  • 如字符串不包含数字,返回0.0;
  • 字符串可包含指数(如1.25e+5);
float a = atof("1");
float b = atof("1.25e+5");

atoi —— 将字符串转化为整数

int atoi(string str)
int atoi(string str, int base)
  • 忽略空格;
  • 如字符串不包含数字,返回0.0;
  • 字符串可包含指数(如1.25e+5);

degrees —— 将弧度转化为角度

  • 大多数VEX三角函数使用弧度,但用户更易使用角度;
float degrees(float num_in_rads)
vector2 degrees(vector2 nums_in_rads)
vector degrees(vector nums_in_rads)
vector4 degrees(vector4 nums_in_rads)

radians —— 将角度转化为弧度

//角度转化为弧度
float radians(float num_in_degs)
//应用了反正切atan()
 radians(nums_in_degs)

hsvtorgb —— 将颜色空间从HSV转化为RGB

vector hsvtorgb(vector hsv)
vector hsvtorgb(float hue, float sat, float val)

rgbtohsv —— 将颜色空间从RGB转化为HSV

vector rgbtohsv(vector rgb)
vector rgbtohsv(float r, float g, float b)

rgbtoxyz —— 将线性sRGB转化为CIE XYZ

vector rgbtoxyz(vector rgb)
  • XYZ被认为是通用颜色空间;

xyztorgb —— 将CIE XYZ转化为线性sRGB

vector xyztorgb(vector xyz)

serialize —— 将vector/matrix数组展平为浮点数组

float[] serialize(vectors[])
float[] serialize(matrices[])
vector v[] = { {1,2,3}, {7,8,9} }; // A vector[] of length 2
float  f[];
f = serialize(v);
// Now f[] has a length of 6 and equals { 1,2,3,7,8,9 }

unserialize —— 将展平的浮点数组转化为vector/matrix数组

[] unserialize(float values[])
[] unserialize(float values[])
vector v[]
float  f[] = { 1, 2, 3,  7, 8, 9 };
v = vector(unserialize(f));
// Now v has a length of 2 and contains { {1,2,3}, {7,8,9} }

cracktransform —— 依据c值返回xform的特定分量

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=0,返回translate;
  • c=1,返回rotate(单位degree,可使用radian转化为弧度);
  • c=4,返回rotate(单位radian);
  • c=2,返回scale;
  • c=3,返回shears;
void cracktransform(int trs, int xyz, vector pivot, vector pivot_rotate, matrix xform, vector &t, vector &r, vector &s, vector &shears)
  • 如需返回有多个组件,使用此更有效;
void cracktransform(int trs, int xyz, vector pivot, matrix xform, vector &t, vector &r, vector &s)
  • 不支持pivot_rotate或shears;
  • 如需返回有多个组件,使用此更有效;

eulertoquaternion —— 从欧拉角创建表示四元数的vector4

vector4 eulertoquaternion(vector rotations, int order)
  • rotations表示欧拉角(X,Y,Z),单位弧度;
  • 需指定旋转顺序,使用常数(被定义在$HH/vex/include/math.h),XFORM_XYZ表示旋转顺序为x、y、z;

quaterniontoeuler —— 从表示四元数的vector4创建欧拉角

vector quaterniontoeuler(vector4 orient, int order)
  • 单位为弧度,可使用degree转化为角度;
  • 需指定旋转顺序,使用常数(被定义在$HH/vex/include/math.h),XFORM_XYZ表示旋转顺序为x、y、z;

qconvert —— 将表示四元数的vector4转化为matrix3

matrix3 qconvert(vector4 quaternion)
//转化,并应用一个偏移
matrix qconvert(vector4 quaternion, vector offset)
//转化为angle/axis矢量
vector qconvert(vector4 quaternion)

你可能感兴趣的:(#,VEX,Houdini)