选择显示字体大小

maya mel基础教程(8)

maya mel基础教程
阵列

你可以声明一个int, float, string或vector类型的阵列。阵列的第一个序号为0

string $array[3] = {"first\n", "second\n", "third\n"};
print($array[0]); // 显示 "first\n"
print($array[1]); // 显示 "second\n"
print($array[2]); // 显示 "third\n"

阵列尺寸可以自动地增加。

int $scores[]; // 声明为一个0元素阵列
$scores[150] = 3; // 现在是151元素阵列
$scores[200] = 5; // 现在是201元素阵列 但最好不要声明过大的没用的阵列,因为它要占内存:

int $bigboy[];
$bigboy[123456789] = 2; // 危险

要除去一个阵列的所有元素可使用clear**能。要查看阵列的尺寸可使用size。

string $hats[3] = {"blue", "red", "black"};
print("there were " + size($hats) + " hats.\n");
clear($hats);
print("but now there are " + size($hats) + ".\n");

以上指令的输出是:

there were 3 hats.
but now there are 0.

矩阵

可以把一个矩阵想象为一个浮点阵列的阵列,或是一个浮点数据的二维阵列。矩阵产生后,它的尺寸不能改变。
企图寻址一个矩阵的不存在的元素将会出现错误。在产生矩阵时必须定义它的尺寸。

matrix &#36;a1[][] = <<1; 4>>; // 错误: 没有说明尺寸
matrix &#36;a2[][]; // 错误: 没有说明尺寸
matrix &#36;a3[2][1]; // 有效: 产生 <<0; 0>>;
&#36;a3[0][1] = 7; // 错误: 元素不存在
&#36;a3[1][0] = 9; // 有效

声明而未标注值的矩阵,其所有元素都为0。

matrix &#36;a4[2][4] = <<-3.4, 6, 201, 0.7; 4, 2, 9.3, 1001>>;

如果矩阵表示一个二维阵列,则第一个索引表示列;地二个索引表示行:

matrix &#36;a4[2][4]column 0column 1column 2column 3
row 0-3.462010.7row 1429.31001

如果你把矩阵设想为一个身列的阵列,则第一个索引表示阵列,第二个索引该阵列里的索引

matrix &#36;a4[2][4]index 0index 1index 2index 3
float array 0-3.462010.7float array 1429.31001

物体属性

属性是场景中的物体的特征或参数。在maya中可以用许多方法建立属性-属性编辑器、mel程序、工具盒工具或表达式。
你可以设立属性去控制在工作空间中看到的虚拟的事情。
如,一个nurbs球具有属性scalex, scaley, scalez, rotatex, 等等。

物体属性名

物体属性名具有如下格式:

objectname.attributename

其中objectname是物体的名字,attributename是该物体的属性名。属性名中不要使用空格或特殊字符,可以用下划线。

产生一个名字为brawl的球:

sphere -name brawl;

可以获取它的属性的一个值:

float &#36;yscale = `getattr brawl.scaley`;

brawl.scaley是brawl物体的scaley属性的全名。

路径

如果两个物体具有不同的父物体,它们可以有相同的名字。当说明有相同名字的物体时必须使用路径:

pathnameobjectname

其中pathname物体的父物体。管道字符()用于区分路径。

sphere -name doughnuthole;
group -name groupa;
sphere -p 3 0 0 -name doughnuthole;

现在我们有两个叫做doughnuthole的物体,但一个有父物体groupa,另一个没有父物体。以?*噶畈桓龃砦螅?br /> 因为maya不知道哪个doughnuthole物体要设立scaley属性:

setattr doughnuthole.scaley 3.3; // error: 哪个?

你必须输入属性的路径:

setattr groupadoughnuthole.scaley 3.3;
setattr doughnuthole.scaley 0.3;

你可以说明物体的所有路径,用管道符进行区分:

group -name groupb groupa;

setattr groupbgroupadoughnuthole.scaley 1;

物体属性的可能的数据类型

每个属性有特定的数据类型。几何体, 粒子物体, maya中的其他项都具有这些数据类型的属性:

数据类型 意义 属性例 数据例

浮点小数 numbers ball.translatex 2.6, 7.0, -9.1int
整数 (...-1, 0, 1, 2...) ballshape.spansu -289, 33, 0
boolean 0或1 ball.visibilityon, off, yes, no, 1, 0, true, false

考虑一个由以?*噶畈慕凶鯢ire的粒子物体:

particle -name fire -position 7 0 7;

它可以具有以下另外的数据类型:

数据类型 意义 属性例 数据例

vector array 矢量阵列 fireshape.position
{<<3.2,?7.7,?9.1>>, <<7,?10,?2.2>>}
double array 浮点阵列 numbersfireshape.lifespan 1.333 1.666

你可以使用getparticleattr和setparticleattr指令设立矢量的元素或一个粒子系统的双阵列。

float &#36;tmp[] =
`getparticleattr -at position fireshape.pt[0]`;
vector &#36;particleposition = <<&#36;tmp[0], &#36;tmp[1], &#36;tmp[2]>>;
(完)   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons