用户名 密    码

maya表达式教程:动画之Functions(二)

来源:pcdog.com 作者:XiaoYu 发布时间:2010-08-17 10:50:18 网友评论 0

  表达式动画之Functions
  三数学函数的用法
  了解这一部分的内容最好能够参考高中教本关于三角函数的章节。ABS是ABSOULTE的缩写意思是取决对值。例如:intabs(intnumber)
floatabs(floatnumber)
vectorabs(vectornumber)
  函数名是abs,它将返回number的绝对值。绝对值是没有正负数之分的数值。
  本例说明abs函数有3种格式。每种格式要求一个不同数据类型的参数并返回一个不同数据类型的值。
  第一个格式说明用户可以键入整数类型参数,并且函数返回一个整数。比如,abs(-3)返回数值3。
  第二个格式说明用户可以键入一个浮点类型参数,并且函数返回一个浮点数,比如,abs(-7.54)返回7.54。
  第三个格式说明可以键入一个向量,而且函数返回一个向量。比如,abs(<<3,-6.3,-2>>返回<<3,6.3,2>>。acos返回的是一个数值的反余弦弧度值,其范围是0~pi。floatacos(floatnumber)
number是角的余弦值,其范围是-1~1。
  例如:acos(1)返回值是0。acos(-0.5)返回的是2.0944弧度。acosd  返回的是一个数值的反余弦角度值,其范围是0~180。floatacosd(floatnumber)number是角的余弦值,范围是-1~1。
  例如:acosd(1)返回值是0度。cosd(-0.5)返回值是120度。asin
  返回值是一个数值的反正弦弧度值,其范围是-pi/2到pi/2。
floatasin(floatnumber)
number是角的正弦值,其范围是-1~1。
  例如:asin(0.5)返回值是0.525弧度。sind
  返回的是一个数值的反正弦度数值,其范围是-90到90。floatasind(floatnumber)number是角的正弦值,范围是-1~1。
  例如:asind(0.5)返回的是30度。atan返回的是一个数值的反正切弧度值,其范围是-pi/2到pi/2。floatatan(floatnumber)
number是角的正切值,可为任何值。例如:
atan(1)返回值是0.785。atand返回的是一个数值的反正切角度值,其范围是-90~90度。floatatand(floatnumber)number是角的正切值,可为任何值。
  例如:atand(1)返回的是45度。atan2返回的是一个在X,Y坐标轴中指定的反正切弧度值。这个角是以X轴为一边,另一边是由原点和坐标系中一点形成的直线构成。返回的角以弧度为单位,范围是-pi到pi。loatatan2(floatY,floatX)X是点的X坐标。Y是点的Y坐标。
  例如:atan2(1,1)
  返回的是0.785弧度。
  今天就写到这,已经很晚了,欢迎与我共同讨论tobecontinue
  今天加上MATHFUNCTIONS的最后一部分,来结素这个话题。其他的函数由于他们比较好理解,就不做说明了。毕竟一个人的能力是有限的。有点对不住大家了。atan2d返回的是一个在X,Y坐标系中指定的反正切角度值。返回的角以度为单位,范围是-180到180度。floatatan2d(floatY,floatX)X是点的X坐标。Y是点的Y坐标。
  例如:atan2d(1,1)返回45度。hypot返回的是从原点到在X,Y坐标系点的二维向量值.angle返回向量间的弧度角.floatangle(vectorvector1,vectorvector2)vector1是一个向量。vector2是另一个向量。
  返回角是两个向量所夹角中的最小角,它通常小于180度。
  例如:angle(<<2,-1,1>>,<<1,1,2>>返回1.0472弧度,它等于60度。cross返回由两个向量定义的叉乘值。
  对于两个向量,叉乘值是由两个向量定义而成的面的法线,
vectorcross(vectorvector1,vectorvector2)
  若叉乘值是0,那么可能是两个向量平行或在同一条直线上。若一个或两个向量是<<0,0,0>>,那么叉乘值返回<<0,0,0>>。ector1是一个向量。vector2是另一个向量。例如:cross(<<1,2,-2>>,<<3,0,1>>返回值是<<2,-7,-6>>。dot返回两个向量的浮点点积。点积把两个向量作为自变量并返回一个标量值。floatdot(vectorvector1,vectorvector2)
  如果点积返回0,那么两个向量是垂直的。
vector1是一个向量。vector2是另一个向量。
  例如:dot(<<1,2,-2>>,<<3,0,1>>返回1,这个例如的点积是(1*3) (2*0) (-2*1),它等于1。mag返回向量的值,它是向量的长度,oatmag(vectorvector)vector是所要得到数值的向量。Mag函数使用下列公式把向量转换为一个浮点数。
  例如:mag(<<7,8,9>>返回值13.928。rot
  返回一个向量,它代表以指定轴旋转一定弧度后点的位置。ectorrot(vectorpoint,vectoraxis,floatangle)point是在世界坐标系中点的位置。Axis是点围绕之旋转的轴。这个轴是一条经过原点的有指定方向的线。angle是点所旋转的弧度。
  例如:rot(<<3,3,0>>,<<1,0,0>>,0.5)返回值为<<3,2.633,1.438>>。这是一个向量,它是沿<<1,0,0>>的轴旋转0.5弧度后点的位置在<3,3,0>>的向量。
  例如:particleShape1.position=rot(position,<<0,1,0>>,0.1);  假定在场景中有一个单粒子物体,它的位置是<<4,6,0>>,并为它的粒子形节点写了上面的runtime表达  式。播放动画时,粒子将沿Y轴旋转成一个圆形图案。
  在每帧中,粒子旋转0.1弧度,约为5.7度,
unit返回一个和向量相应的unit向量。unit向量具有和指定向量相同的方向,但是它的数量是1。vectorunit(vectorvector)vector是和unit向量相应的向量,例如:unit(<<1,1,1>>返回<<0.577,0.577,0.577>>。(完)

关键词:表达式教程
搜索栏目