我尽可能的将我所了解的内容告诉大家,有不周全的地方请参考 maya 的联机手册,虽然它是英文的。哎!不学英文怎么活?!
表达式动画之functions 三 数学函数的用法 了解这一部分的内容最好能够参考高中教本关于三角函数的章节。 abs 是 absoulte 的缩写意思是取决对值。 例如: int abs(int number) float abs(float number) vector abs(vector number) 函数名是 abs, 它将返回 number 的绝对值。绝对值是没有正负数之分的数值。 本例说明 abs 函数有 3 种格式。每种格式要求一个不同数据类型的参数并返回一个不同数据类型的值。 第一个格式说明用户可以键入整数类型参数,并且函数返回一个整数。比如, abs(-3) 返回数值 3 。 第二个格式说明用户可以键入一个浮点类型参数,并且函数返回一个浮点数,比如, abs(-7.54) 返回 7.54 。 第三个格式说明可以键入一个向量,而且函数返回一个向量。比如, abs(%26lt3, -6.3, -2 返回 %26lt3, 6.3, 2 。 acos 返回的是一个数值的反余弦弧度值,其范围是 0~ pi 。 float acos(float number) number 是角的余弦值,其范围是 -1~1 。 例如: acos(1) 返回值是 0 。 acos(-0.5) 返回的是 2.0944 弧度。
acosd 返回的是一个数值的反余弦角度值,其范围是 0~180 。 float acosd(float number) number 是角的余弦值,范围是 -1~1 。 例如: acosd(1) 返回值是 0 度。 acosd(-0.5) 返回值是 120 度。 asin 返回值是一个数值的反正弦弧度值,其范围是 -pi/2 到 pi/2 。 f loat asin(float number) number 是角的正弦值,其范围是 -1~1 。 例如: asin(0.5) 返回值是 0.525 弧度。 asind 返回的是一个数值的反正弦度数值,其范围是 -90 到 90 。 float asind(float number) number 是角的正弦值,范围是 -1~1 。 例如: asind(0.5) 返回的是 30 度。 atan 返回的是一个数值的反正切弧度值,其范围是 -pi/2 到 pi/2 。 float atan(float number) number 是角的正切值,可为任何值。 例如: atan(1) 返回值是 0.785 。 atand 返回的是一个数值的反正切角度值,其范围是 -90~90 度。 float atand(float number) number 是角的正切值,可为任何值。 例如: atand(1) 返回的是 45 度。 atan2 返回的是一个在 x,y 坐标轴中指定的反正切弧度值。这个角是以 x 轴为一边,另一边是由原点和坐标系 中一点形成的直线构成。返回的角以弧度为单位,范围是 -pi 到 pi 。 float atan2(float y, float x) x 是点的 x 坐标。 y 是点的 y 坐标。 例如: atan2(1,1) 返回的是 0.785 弧度。 今天就写到这,已经很晚了,欢迎与我共同讨论 to be continue
今天加上 math functions 的最后一部分,来结素这个话题。其他的函数由于他们比较好理解,就不做说明了。毕竟一个人的能力是有限的。有点对不住大家了。 atan2d 返回的是一个在 x,y 坐标系中指定的反正切角度值。返回的角以度为单位,范围是 -180 到 180 度。 float atan2d(float y, float x) x 是点的 x 坐标。 y 是点的 y 坐标。 例如: atan2d(1,1) 返回 45 度。 hypot 返回的是从原点到在 x, y 坐标系点的二维向量值 .
angle 返回向量间的弧度角 . float angle(vector vector1, vector vector2) vector1 是一个向量。 vector2 是另一个向量。 返回角是两个向量所夹角中的最小角,它通常小于 180 度。 例如: angle(%26lt2,-1,1,%26lt1,1,2 返回 1.0472 弧度,它等于 60 度。 cross 返回由两个向量定义的叉乘值。 对于两个向量,叉乘值是由两个向量定义而成的面的法线, vector cross(vector vector1, vector vector2) 若叉乘值是 0 ,那么可能是两个向量平行或在同一条直线上。若一个或两个向量是 %26lt0,0,0 ,那么叉乘 值返回 %26lt0,0,0 。 vector1 是一个向量。 vector2 是另一个向量。 例如: cross(%26lt1,2,-2,%26lt3,0,1 返回值是 %26lt2, -7, -6 。 dot 返回两个向量的浮点点积。点积把两个向量作为自变量并返回一个标量值。 float dot(vector vector1, vector vector2) 如果点积返回 0 ,那么两个向量是垂直的。 vector1 是一个向量。 vector2 是另一个向量。 例如: dot(%26lt1,2,-2,%26lt3,0,1 返回 1 ,这个例如的点积是 (1 * 3) + (2*0) + (-2*1), 它等于 1 。 mag 返回向量的值,它是向量的长度, float mag(vector vector) vector 是所要得到数值的向量。 mag 函数使用下列公式把向量转换为一个浮点数。 例如: mag(%26lt7,8,9 返回值 13.928 。
rot 返回一个向量,它代表以指定轴旋转一定弧度后点的位置。 vector rot(vector point, vector axis, float angle) point 是在世界坐标系中点的位置。 axis 是点围绕之旋转的轴。这个轴是一条经过原点的有指定方向的线。 angle 是点所旋转的弧度。 例如: rot(%26lt3,3,0,%26lt1,0,0,0.5) 返回值为 %26lt3, 2.633, 1.438 。这是一个向量,它是沿 %26lt1,0,0 的轴旋转 0.5 弧度后点的位置在 %26lt3,3,0 的向量。 例如: particleshape1.position = rot(position,%26lt0,1,0,0.1); 假定在场景中有一个单粒子物体,它的位置是 %26lt4,6,0 ,并为它的粒子形节点写了上面的 runtime 表达 式。播放动画时,粒子将沿 y 轴旋转成一个圆形图案。 在每帧中,粒子旋转 0.1 弧度,约为 5.7 度,
unit 返回一个和向量相应的 unit 向量。 unit 向量具有和指定向量相同的方向,但是它的数量是 1 。 vector unit(vector vector) vector 是和 unit 向量相应的向量, 例如: unit(%26lt1,1,1 返回 %26lt0.577, 0.577, 0.577 。(完)
FEVTE编注:更多MAYA角色教程讨论交流和MAYA作业提交请进入飞特论坛三维作业板块,地址:https://www.fevte.com/forum-54-1.html
飞特游客
委托设计