一、操作符相关
//****重点****重点*********重点******重点*****重点*******重点********
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);