美文网首页
Houdini VEX(十八)操作符相关

Houdini VEX(十八)操作符相关

作者: Joe_Game | 来源:发表于2019-08-08 23:28 被阅读0次

    一、操作符相关

    //****重点****重点*********重点******重点*****重点*******重点********
    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);
    
    

    相关文章

      网友评论

          本文标题:Houdini VEX(十八)操作符相关

          本文链接:https://www.haomeiwen.com/subject/wpjqjctx.html