;
matrix $Vb[1][4] = <<6, 3, 7, 5>>
matrix $Vc[1][4] = $Va + $Vb; --> 得 <<8, 3, 7, 7>>
matrix $Vd[1][4] = $Vc + $Vd; --> 得 <<-4, -3, -7, -3>>
matrix $Ve[2][4] = <<4, 1, 1, 2; 3, 4, 5, 8>>
matrix $Vf[4][3] = <<7, 6, 0; 7, 5, 4,; 2, 1, 6; 2, 0, 2>>
matrix $Vg[2][3] = $Ve * $Vf; --> 得 <<41, 30, 14; 75, 43, 62>>
matrix $Vh[2][3] = 2 * $Vg; --> 得 <<82, 60, 28; 150, 86, 124>>
/ 和 % 不能用于两个拒阵之间,但能用于一个拒阵和一个标量(整数或浮点数,英文统称scalar)之间。那标量必须处于右边:
matrix $testmat1[1][4] = <<4, 9, 5, 2>> % 3; --> 得 <<1, 0, 2, 2>>
matrix $testmat2[1][4] = <<1, 2, 8, 4>> / 2; --> 得 <<0.5, 1, 4, 2>>
改值分配缩写
$var = $var + 17 可以缩写成 $var += 17。其他算号也能这么写。若你想把变量值增加或削减一的话,还有更简短的写法: $var++,++$var,$var-- 或 --$var;那双算号若放在变量名前面的话,就先改值,后做其它分配工作;放后面的话则相反。
float $eel = 32.3;
float $crab = $eel++; --> $crab得32.3,$eel得33.3
$crab = $eel--; --> $crab得33.3,$eel得32.3
$crab = --$eel; --> $crab得31.3,$eel得31.3
$crab = ++$eel; --> $crab得32.3,$eel得32.3
测验句子
下列句子若测验出是对的话,就会给回1,否则给回0。
$var1 < $var2; --> $var1小于$var2 ?
$var1 > $var2 --> $var1大于$var2 ?
$var1 == $var2 --> $var1等于$var2 ?
$var1 != $var2 --> $var1不等于$var2 ?
$var1 >= $var2 --> $var1大于或等于$var2 ?
$var1 <= $var2 --> $var1小于或等于$var2 ?
$var1 < $var2 || $var1 > $var3 --> $var1小于$var2或大于$var3?
$var1 < $var2 && $var1 > $var3 --> $var1小于$var2而且大于$var3?
!$var1 --> 若$var1代表0就给回1,否则给回0
上面最后那个句子里头的$var1可以用其它较复杂的测验句子代替,如
!($var1 < $var2 && $var1 > $var3)
注意句子周围的括号。你了解这括号的用意吗?
带条件的值分配
在分配值时,你可以用一个测验条件来选择两个值之中的一个。比如
string $finvar = 10 < 11 ? "smaller" : "larger"
就表示如果10小于11的话(当然是),就把"smaller"分配给$finvar,不然就分配"larger"给它。这语法有一个细节需要注意: 那两个选择值的类最好是匹配的。虽然这好像是很明显,但你试试执行以下句子:
float $mog = 0 ? 8 : 3.3
因为8这整数先出现,Maya会把3.3变成3以跟它匹配,然后把这3分配给$mog(测验句子的0代表“错”,1则代表“对”)。
算法的优先次序
以下列表显示所有运算符的优先次序。越高的就越优先受处理。同等级的运算符,在表达式里排在左边的先被处理。
() []
! ++ --
* / % ^
+ -
< <= > >=
== !=
&&
||
?:
= += -= *= /=
逻辑运算
若要按照某些条件执行某些