Houdini VEX(十八)操作符相关
🪟

Houdini VEX(十八)操作符相关

一、操作符相关
//****重点****重点*********重点******重点*****重点*******重点******** int iii = 5; int ii = 2; float ff = 5.2; printf('0 %s\n', iii*ii );//整数之间运算结果还是整数 printf('1 %s\n', ii*ff );//只要有浮点,结果就是浮点,不论浮点在运算符左边右边 //****重点****重点*********重点******重点*****重点*******重点******** //****重点****重点*********重点******重点*****重点*******重点******** vector4 a = {5,8,2,4}; printf('2 %s\n', a.a ); //向量的每个分量可以用 xyzw 或 rgba 或 0123 获取 printf('3 %s\n', a[1] ); vector2 b = {6,7}; printf('4 %s\n', b.v ); //二维向量可用 uv xy 获取 matrix d = {3,6,8,7, 1,5,4,2, 2.2,1.9,5.6,8, 77,32,17,32}; printf('5 %s\n', d.zx ); //矩阵也可用 xyzw rgba 获取 //例如xy(第一行第二列) wb(第四行第三列) rx(第一行第一列) //****重点****重点*********重点******重点*****重点*******重点******** //向量(包括矩阵) 与 标量(浮点或整数) 相加减乘除 还是向量,每个分量都会进行运算 printf('6 %s\n', {1,2,3}*5 );//不论正反 printf('7 %s\n', 6/{1,2,3} ); matrix c = 2; printf('8 %s\n', 5*c ); printf('9 %s\n', c/5 ); //printf('9.5 %s\n', 2.0/c );//标量除以矩阵 例外 //切换向量的元素顺序,相当于set vector e = {3,2,4}; printf('10 %s\n', e.zyz );printf('11 %s\n', e.xzy ); printf('12 %s\n', set(e[2],e.r,e.y) ); vector4 gg = {5,8,7,2}; vector kk = {8,7,9}; vector2 jj = {1,7}; printf('13 %s\n',jj+kk);//不同维度的向量相加减乘除,取元素最多的作结果 printf('14 %s\n',gg+kk); //注意四维向量和 2维3维向量运算 2维3维缺少的元素会用{0,0,0,1}填充 //比较操作符== != > < >= <=,得到结果是整数,只能用于对比字符串,整数和浮点 string name = 'piece0'; int in = 20; float ffr = 20.0; printf('15 %s\n', name == 'piece0'); printf('16 %s\n', in != 20); printf('17 %s\n', in >= ffr); //逻辑操作符 || && ! 只能用于整数 得到结果是1或0, printf('18 %s\n', 1 && 0); printf('19 %s\n', true || false); printf('20 %s\n', 1>0 && 1!=0);