61阅读

关于基础的名言-关于基础的名言警句

发布时间:2018-01-23 所属栏目:教案

一 : 关于基础的名言警句

1、只有平日多学习,多积累,才有可能产生高水平的创作。——(中)王梓坤

2、知识像一张网,越实越牢,网住的鱼就越多。——墨西哥

3、扎扎实实地打好基础,练好基本功,我认为这是学好数学的“秘诀”。——(中)苏步青

4、再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。 ——佚名

5、要想造就成高深的学问,就得从字母学起。——日本

6、要想学问大,就要多读、多抄、多写。要记住,一个人想要在学业上有所建树,一定得坚持这样做卡片、摘记。——(中)吴晗

7、要想上梯子必须从底下爬起。——德国

8、要长胡子先成人。——朝鲜

9、学非探其花,要自拔其根。——(中)杜牧

10、想爬上树就得从底下开始。——非洲

11、倘想达到最高处,就要从低处开始。——美国

12、水之积也不厚,则其负大舟也无力。—— 庄子

13、树无根也就无叶。——朝鲜

14、少小而学,及壮有为;壮年而学,及老不衰;老年而学,及死不朽。——(日)佐藤—斋

15、任何业绩的质变都来自于量变的积累。 ——佚名

16、墙高基下,虽得必失。—— 范晔

17、就算你是特别聪明,也要学习,从头学起!——屠格涅夫

18、既然基础等于零,那就从零开始。——英国

19、即使你聪明绝顶,也要从头学起。——俄罗斯

20、基础不良的好建筑是没有的。——英国

21、合抱之木,生于毫末:九层之台,起于垒土;千里之行,始于足下。——(中)老子

22、根深之树不人风折,泉深之水不会涸竭。——朝鲜

23、根深而枝叶茂。——(中)徐干

24、得之在俄顷,积之在平日。——(中)袁守侗

25、旦旦而学之,久而不怠焉,迄乎成。——(中)彭端淑

26、成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。——佚名

二 : 关于3dsmax脚本 script 基础教程

[3D资源] 3D脚本 maxscript

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

入门教程

maxscript入门教程(1)作者:mediastime日期:

2005-12-30 07:41:06属性:原创来源:

www.8media.com点击数:1104

内容图文并茂,语言高度概括,文采形象生动,思

路清晰可见;

指出要害,抓住关键,透彻理解那些难懂的编程概

念;

不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英文单词作图形符号看待,

拿脚本编程当文字游戏把玩。(www.61k.com]

能够提高解决问题的能力,可以降低学习脚本的门

槛。

不用费力看英文帮助,何需辛苦找编程资料,减轻

学习负担,节省宝贵时间!

发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后虚心请教各位高手,

脚本编程从此不再难!

入门教程内容结构

本教程内容分为五个部分,用几个具体的例子讲解

大多数的脚本操作和语法知识。

一、MAXScript简介

1、说明什么是MAXScript以及它有什么功能,能

给用户带来什么好处。

2、访问脚本,认识脚本访问的界面。

二、基本操作: 创建和修改简单的对象,给对象

赋材质,从而引出下面的概念

构造器:创建对象的语法称为构造器;

路径名;

数据类型:它们是数字,字符串,数组。

max脚本 关于3dsmax脚本 script 基础教程

对象和类(层级树);

属性和方法;

变换;

函数和方法的联系;

通用属性和动态属性;

显示属性的函数;

一些常用的方法;

三、创建和操作具有复杂关系的对象,从而引出下

面的概念

变量,变量和属性的关系;

对象引用:引用另外一个对象的属性值作为自己的

值;

数组和集合等:数组,数组和变量的关系;

运算符和表达式;

表达式:求值的规则。[www.61k.com]

流程控制:选择和循环,条件选择。

制作简单的动画:"at time",动画控制器。

四、换一角度——从大家熟悉的操作流程来学习脚

这是对前面知识的总结,前面是对语法基本概念的学习,现在是从大家操作流程的角度来学习,一纵一横,让我们对脚本有个相对全面的了解,理论和实际相互联系。 有了前面的基础才好学下面的内

容。

第一步:创建物体

一些常用物体的创建方法 。

第二步:选择物体

select

路径名,

变量名引用

条件选择

用类和集合选择物体

组Group:是一个虚拟对象,不是集合。

max脚本 关于3dsmax脚本 script 基础教程

第三步:变换物体

变换:postion,move,scale,rotate,变换坐标

系和变换中心

第四步:修改器

第五步:材质和贴图

第六步:制作动画

五、基本的语法知识

现在来学语法恐怕不会那么头痛了吧?

---------------------------------------------------------------------------------------------------------------------------------

--------

一、 MAXScript简介

1、MAXScript

MAXScript语言是为了扩展3ds MAX 功能而专门设计的一种脚本语言,是面向对象编程语言中的一种。[www.61k.com)用它创建的场景物体和材质与在3ds MAX界面中创建的场景物体和材质完全对应。可以生成自动关键帧的动画模式,并可以通过层级路径名来访问场景中的物体。有记录在3ds MAX界面中的交互操作过程的能力,在使用界面操作的同时可以使用

MAXScript来自由创作。

可以实现3D Studio MAX的全部用途,如建模、动

画、材质、渲染等。

MAXScript可以运用各种数学工具来完成高级复杂的程序设计任务。可以对含有大量对象的集合进行操作。例如在复杂的场景中选择物体,可以把大量物体放置在精确的位置上,例如在山或路边放置一些树木,使用MAXScript操作起来是非常的方便。

max脚本 关于3dsmax脚本 script 基础教程

它也能将一些功能定义为界面元素,例如工具栏按

钮、菜单、浮动窗口,程序面板卷帘窗。[www.61k.com)

可以建行批处理操作提高工作效率。例如建立一次

可以渲染多个场景文件的脚本程序。

可以自定义输入输出工具,可以定义修改器,渲染

效果插件等。

2、访问脚本

2.1、认识MAXScript界面:包括MAXScript卷帘

窗,脚本监听器窗口,脚本编辑窗口。

2.1.1、MAXScript卷帘窗

单击命令面板中的按钮,打开应用程序面板,再单

击MAXScript按钮,在应用程序面板出现MAXScript卷帘窗,如图1-1所示。

图1-1

2.1.2、脚本监听器窗口

脚本监听器又叫脚本跟踪器,单击MAXScript卷帘窗中的Open Listener按钮,也可选择菜单栏中的 MAXScript/MAXScript Listener 命令,快捷键

F11。如图1-2所示。

图1-2

也可右击用户界面左下方的Mini-Listener(迷你监听器)打开脚本监听器窗口,如图1-3所示。

图1-3

脚本监听器窗口是一个命令编辑和执行窗口,它由

max脚本 关于3dsmax脚本 script 基础教程

两部分组成,上半部分为宏记录窗口,下半部分为

脚本运行结果输出窗口。[www.61k.com)如图1-4所示。

图 1-4

运行脚本时,脚本监听器窗口会输出脚本的运行结果,运行正确就显示为蓝色,运行错误就显示为红色,希望你的脚本不要出现红色啊。在窗口中可以编写新的脚本语言或对已有的脚本语言进行修改,

用户输入的脚本显示为黑色。

选择主菜单中的宏记录Macro Recorder/Enable命令,如果此时进行操作,在窗口中淡红色部分将记录所进行的操作,这就是宏记录,选择菜单栏中的File/Save as 命令可以将记录保存为一个脚

本。

2.1.3、脚本编辑窗口

单击MAXScript卷帘窗中的New Listener按钮,或者选择菜单中的 MAXScript/New Scrip 命令打

开脚本编辑窗口,如图1-5所示。

图1-5

脚本编辑窗口是一个文本编辑窗口,你能在3ds MAX内部打开、创建或者编辑扩展名为"*.ms"、"*.txt"和"*.dat"格式的文本文件。调试文件时大键盘中的回车键与在记事本中的用法一样的,用来换行,当鼠标光标出现在某一行时,敲一下小键盘区的回车键,就可以执行本行程序。如果选择多行程序,敲下小键盘区的回车键,可以执行选择被选

择的程序。如图1-6所示。

图1-6

按住鼠标左键不放,把选择的一行或者多行程序拖

max脚本 关于3dsmax脚本 script 基础教程

到3DSMAX工具栏里,将生成一个宏脚本按钮,单

击此按钮,就可以运行这个宏脚本。[www.61k.com)

在脚本编辑窗口或脚本监听器窗口里调用edit()函数,可以打开脚本编辑窗口,语法是:edit "脚本文件名称" 。 例如打开 effect.ms 文件:输入 edit " effect.ms ",运行就可以打开这个脚本文

件。

二、基本操作:创建和改变对象

1、创建简单的对象

传说天地未创建之时,是为无极,及有太极,则宇宙处于浑沌状态,就象鸡蛋一样盘旋着,在空间上无大无小无内无外,在时间上追溯到远古时代也无法知道其起源,所以把这种状态称为盘古,后来又不知那个好事者把盘古这种状态变成了一个传说——“盘古开天地”,结果“盘古”变成了一个宇宙创始人。老子给它起了个玄之又玄的名字——道。盘古一斧头就把这混混沌沌蛋给劈开了,结果太极判为天地,一气分为阴阳,中国就有了太极八卦和阴阳学说。自从盘古开辟天地之后,则万物具备,轻清者上升为天,重浊者下降为地。在天成象,在地成形,仰观天有日月星辰,俯察地有人鱼鸟兽,花草树木,种类繁多,数量庞大,不可计数。人类为了征服大自然,掌握这些事物,就给它们进行了分类,把相同的对象归类到具有相似特征的类之中,类与类之间如果还有相似的地方,那么就把这些归纳到更高层次的类中,例如把植物类和动物类归纳到生物类。面向对象编程中类和对象的概念就是试图对上面这些比较符合人类认识规律的概念

进行描述。

好吧,现在就来看看在 MAXScript 中谁是宇宙万

物的创造者——“盘古”。

max脚本 关于3dsmax脚本 script 基础教程

选择菜单中的 MAXScript/New Scrip 命令打开脚本编辑窗口,如果想调试程序,跟踪程序执行结果,

也可以把脚本监听器窗口打开,输入

box length:100 width:100 height:2 sphere radius:10 segments:16

按Ctrl+E键或者选择脚本编辑窗口菜单中的File/Evaluate All 命令执行程序,还可以用鼠标全部选定,敲小键盘上的回车键执行程序(以后都

按此方法,不再说明)。[www.61k.com]

欲知后事如何,且看下回分解。 Email: mediastime@126.com

[ 本帖最后由 呱唧 于 2006-12-12 18:41 编辑 ]

max脚本 关于3dsmax脚本 script 基础教程

收藏 分享 评分

--

香港机房免费试用 1元换购COM域名

max脚本 关于3dsmax脚本 script 基础教程

回复 引用 订阅

max脚本 关于3dsmax脚本 script 基础教程

TOP

沙发 发表于 2006-12-12 18:37 |

只看该作者

maxscript入门教程(2)作者:mediastime日期:2005-12-31 11:45:00属性:原创来源:www.8media.com点击数:744 内容图文并茂,语言高度概括,文采形象

生动,思路清晰可见;

?

呱唧

1

支柱会

指出要害,抓住关键,透彻理解那些难懂

的编程概念;

不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英文单词作图形符号看待,拿脚本编程当文字游戏

把玩。

能够提高解决问题的能力,可以降低学习

脚本的门槛。

员金币

max脚本 关于3dsmax脚本 script 基础教程

279 枚 威望10 热心度

max脚本 关于3dsmax脚本 script 基础教程

不用费力看英文帮助,何需辛苦找编程资料,减轻学习负担,节省宝贵时间!

发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后虚心请

教各位高手,

脚本编程从此不再难!

---------------------------------------------------------------------------------------------------------

-------

结果创建了一个盒子和一个球体,如图2-1所示。[www.61k.com)现在单击工具栏按名字选择对象按钮,在弹出的对话框中会出现这个盒

子的名字“Box01”和球体的名字

“Sphere01”,这是默认的名字。图2-1

box length:100 width:100 height:2 这一行代码就是一个box构造器,它创建了一个长度为100、宽度为100、高度为2的box。搞了半天,原来构造器就是“盘

古”啊,伟哉,万物之始!

什么是构造器?在MAXScript帮助中常常看到Constructor这个单词,中文意思就是构造器。但是帮助中只是说明构造创建对象的语法,但并没有专门的内容来说明构造器这个概念。我把它归纳如下:在MAXScript中创建对象的语法就叫作构造器,其实质就是调用函数来创建对象,所以可以把它看作是一个函数调用 。也可以说是用一个抽象的类产生一个具体的对象。这个函数的名称就是基类的名称,所谓基类就是不能再分的类。我们创建对

max脚本 关于3dsmax脚本 script 基础教程

象都是从基类开始的。(www.61k.com]Box就是个基类,它的上一级就是几何类,再上一级就是节

点。

如果学过JAVA,那么知道创建一个box

对象的语法是:

Box Box01=new box() ;

呵呵,学习MAXScript可舒服了,只需输入box()就可以构造一个box了,面且大

小写,分号都可以不用注意。

当我们手工单击创建面板中的Box按钮,然后在视窗中完成一个长度为100、宽度为100、高度为2的Box时,在程序内部就调用了Box( )函数,就是把我们在界面中的操作转换成了box length:100 width:100 height:2 这行内部代码。

构造器由两部分组成,基类名和创建参数。整个构造器就是一个函数调用 ,函数名 box就是基类的名字。创建参数由参数名后跟一个 冒号 : 和参数值组成,

如图2-2所示。

图2-2

如果调用函数没有输入任何参数,那么必须在类名后加上一对英文 ( )括号,例如box(),将创建缺省参数的盒子。知道构造器原理后就知道怎么创建其它的对象

了, 例如创建球体,输入

sphere radius:10 就可以了。

注:由于对象和类、层级关系等详细概念的内容比较复杂,将另立一文讲述。请

看>>

max脚本 关于3dsmax脚本 script 基础教程

2、改变对象

创建了盒子和球体对象之后,我们想知道刚才的长度、宽度等参数是否正确,应该怎么办呢?那就要访问对象的属性。[www.61k.com]诸如长度、宽度、名字、线框颜色半径等等对象所具有的特性统统称为对象的属性

(Properties)。

访问对象属性的语法是由对象的路径名(PathName)后跟小数点.和属性名组成,路径名由美元符号$后跟对象在场景中的名称组成,$表示当前场景。例如访问box01的长度,输入 $Box01.length ,在脚本跟踪器窗口中返回100.0,访问

Sphere01的半径,输入

$Sphere01.radius 返回 10.0 。改变

Sphere01的线框颜色,输入

$sphere01.wirecolor=blue 或者输入:$sphere01.wirecolor= (color 0 0 255)

都一样。

那么要改变属性呢?只需给这些属性赋值, 输入$Box01.length=20,box01的长度变成20。我们以前数学里的等号在MAXScript中只能当作赋值符号用了。值的数据类型有几种,现在简单介绍几个典型的不同数据类型,它们是数字,字符串,

数组。

数字:MAXScript区分两个数目类型:integers(整型)和floats(浮点型)。整型就是整数,例如0、1、802。浮点型就是小数,如期而至0.2、25.02、0.68。当MAXScript执行数字操作时返回和运

max脚本 关于3dsmax脚本 script 基础教程

算参数相同的类型。(www.61k.com]例如4+5返回9、而

4.0+5.0返回9.0。

字符串:字符串是一个常量,需用引号标识。输入"Hello",MAXScript返回"Hello"。如果输入时没有加引号则返回undefined未定义。改变Sphere01的名字,输入$Sphere01.name="球体01",现在打开修改器面板 ,可以看到如图2-3

所示的样子。

图2-3

再把名字改回来,输入:

$球体01.name="sphere01"

注意双引号不能忘掉输入。

数组:数组是一些有序的元素的集合。每个元素可以是任何类型的值,并且所有的元素都可以单独的访问。一个数组可以有两种表现形式,第一种是:#(),这是一个空数组,数组定义必须用一个数目符号#和一对括号( )组成,括号里面是数组的元素名,元素可以为一到多个,多个元素

之间用逗号分开,例如,#(1,

“hello”,3.14159)。想要初始化数组中的元素的时候数组有适当的形式,每一个元素的值可以是数值,一个表达式(例如、

30*2),或者是一个字符串(例如,“hello”),元素的名称是不能有同名,而且元素的数目没有限制。关于数组的具体操作,以后的例子中会涉及,这里

只作个简单的介绍。输入命令 #(100,"hello",pi) ,MAXScript返回

#(100, "hello", 3.14159)。

max脚本 关于3dsmax脚本 script 基础教程

那么我们怎么可以获取更多的创建参数

呢?方法有两种:

其一是在创建面板中找到对应的创建参数名,创建好的对象也可以在修改器面板中找到创建参数。[www.61k.com]如图2-4A所示。 其二,根据属性来,因为创建参数实质就是根据对象的属性而定的,没有这个属性就不可能有这个创建参数。显示对象的属性的函数是 showProperties( ),输入 showProperties $box01 ,结果在脚本监听器窗口中返回以小数点开头属性名称,冒号后面是值的类型,现在不要管它。如图2-4B所示。三者之间的关系 如图2-4

所示。

图2-4

细心的读者会发现,像name、wirecolor这些属性怎么没有显示出来呢?这就涉及到节点的通用属性,可以观看另文撰写的文章“面向对象编程中的对象和类”中的“类的继承”内容,现在不要管它,随着学习后面的文章,就会知道的。

3、变换对象

改变位置:想把那个球体放在Box01上面,先看看这两个物体的坐标吧。输入 $Box01.pos 返回 [0,0,0] ,输入 $Sphere01.pos 也返回 [0,0,0] 。Box01的高度是2,Sphere01 的半径是10,要向Z轴移动球体 12 个单位才能达到目的。输入 move $Sphere01 [0,0,12], 结果球的底部刚好在盒子的上面。聪明的读

者也可能会输入 $Sphere.pos=

[0,0,12] ,结果也达到了目的。那么move

max脚本 关于3dsmax脚本 script 基础教程

和pos有什么不同呢?我们试着分别把$Sphere01.pos= [0,0,12] 和 move $Sphere01 [0,0,12] 分别连续输入三遍,结果区别就出来了。[www.61k.com)pos是绝对坐标,

move是相对坐标。

[0,0,12] 是什么?它是个三点值,在这里,方括号中的三个值分别是X轴、Y轴、

Z 轴坐标值。

缩放尺寸:据说地球以前是圆的,后来人一多就给踩扁了,变成现在的椭圆形了。现在看看我们创建的球是不是也能踩扁它。输入$Box01.scale看看结果,返回

了 [1,1,1],再输入

$Box01.scale=[1,1,0.5] ,结果Box01沿Z轴方向被压扁了一半,重复输入几

次,不会再有变化了。输入

$Box01.scale=[1,1,1] ,恢复原状,现在输入scale $Box01= [0.5,0.5,1],它沿XY轴方向缩小了一半,继续输入就更小了。 $Box01.scale是绝对的, scale $Box01 [0.5,0.5,1]是相对的。输入$Box01.scale=[1,1,1] 恢复到原来的状态。数值1表示原始大小即100%,2表示200%,0.5表示50%,其它如此推算。方括号中的三个值分别对应于X轴、Y轴、

Z 轴。

旋转角度:那个盒子比球大,却被球压迫

在底下,很不服气,发出

$Box01.rotation=(eulerangles 90 0 0) 命令,来了个侧翻身,结果如图2-5所示。

图2-5

(eulerangles 90 0 0) 这是欧拉角度值,

max脚本 关于3dsmax脚本 script 基础教程

eulerangles 表示欧拉角度,后面三个值分别表示X轴、Y轴、Z 轴。[www.61k.com)上面称动和缩放都有两种操作方式,一种是为属性赋值而变换,另外一种是接受一个动作而变换,那么角度也不例外,输入 rotate $Box01 (eulerangles 90 0 0),结果又把这个盒子给摆平了。也能写成比较好记

的方式如

rotate $Box01 90 x_axis 旋转X轴90度,rotate $Box01 90 y_axis 旋转Y轴90度, rotate $Box01 90 z_axis 旋转

Z轴90度。

像上面 move、 scale、rotate 等都是函数(Function),能够完成对象的特定功能,在MAXScript中被称为对象的方法(Methods)。函数和方法实质是一样的,属于对象特有的函数都称为方法。

凡是通过改变对象属性来变换的都是绝对值,通过对象的方法来变换的都是相对

值。

4、复制对象

这个世界有辛辛苦苦的实干家,那么就有快快活活的投机者。现在我们也来个偷懒的做法,嘿嘿,不要认为是模仿啊。输入 copy $sphere01 pos:[30,30,12] name:"球体2":,结果在盒子的斜角处产生了一个新的名字为"球体2"球体。 如图2-6

所示。

图2-6

copy也是对象的方法,它调用了另外一个函数作为参数,这个函数就是前面提到

max脚本 关于3dsmax脚本 script 基础教程

的构造器。(www.61k.com]把被调用的函数称为位置参数(Positional Arguments),把被调用的

参数称为关键词参数(Keyword Arguments)。因为位置参数只能放在固定的位置上,所以称为位置参数,关键词参数是成对出现的,写法就像 “关键词:值”,和上面提到的创建参数一样,没什么区别。概念是真多,把人给搞晕了,其实搞通了不过是那么回事。关联和引用复制就是把copy分别替换为instance、

reference。

5、其它方法:

select 选择对象、deselect 取消选择、delete 删除对象、hide 隐藏对象,

unhide 取消隐藏、

freeze 冻结、 unfreeze 取消冻结。

示例:

select $Box01--选择Box01

deselect $Box01--取消选择Box01 delete $* --删除场景中所有对象

6、赋予材质

自从有了你,世界更美丽。给盒子铺上几

块地砖,输入:

$box01.material=standardMaterial

diffusemap:(tiles())

showInViewport:true

结果如图2-7所示

图2-7

$box01.material是Box01的材质属性,材质也是一个对象,所以标准材质的构造

器是

max脚本 关于3dsmax脚本 script 基础教程

standardMaterial

diffusemap:(tiles())

showInViewport:true

standardMaterial是标准材质类名称,关键词参数 diffusemap:(tiles()) 是材质的 diffusemap 贴图,其值tiles()是平铺贴图类型,showInViewport:true 表示是否在视窗中显示。(www.61k.com]其值是true或者false,true(真)表示显示,false

(假)表示不显示。

这个材质并没有在材质编辑器24个球中出现,但点击获取材质按钮在场景选项中可以找到它。如果想把材质编辑器插槽中的材质球中的一个赋给Sphere01,输入 $sphere01.material=meditmaterials[1] --[1]表示第一个,[2]表示第二个 $sphere01.material.diffuse=yellow

--设置diffuse的颜色为黄色

$sphere01.material.specularLevel=20

--设置高光级别为20

结果如图2-8所示

图2-8

窍门:参数太多不易掌握,可选择主菜单中的宏记录Macro Recorder/Enable命令,然后手工在界面中操作,再观看宏记录,此时不禁心中窃笑,哈哈,MAXScript

你想难倒我,没门!

关于材质方面的知识太多,不是一时所能掌握的,在此只作过初步了解吧。

7、修改对象

addmodifier $box01 (bend())

$box01.widthsegs=10m

max脚本 关于3dsmax脚本 script 基础教程

$box01.bend.benddir=0

$box01.bend.bendaxis=0

$box01.bend.angle=-180

像对象的修改器、空间变形等属性,并非

对象所固有的,而是后来通过另外的对象

附加上去的属性,MAXScript中把它称为

动态属性(dynamic properties)

8、定义自己的脚本

上面输入的脚本可以保存下来,以备以后

再使用。(www.61k.com]选择脚本编辑器菜单中的 File

/Save 命令,保存到指定的文件夹中,

等以后要用时选择File/Open 命令可以

进行编辑,也可以选择File/Run命令运

行脚本。

欲知更多精彩,且看下回分解。

Email: mediastime@126.com

-- 中国教程网版主、巡查员职位虚位以待 回复 引用 TOP

?

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

板凳 发表于 2006-12-12 18:38 | 只看该作者

潇潇洒洒玩脚本,轻轻松松搞开发,乐在其中矣!首 页 留言本 作 品 关 于 论 坛maxscript入门教程(3)作者:mediastime日期:2006-01-02 04:26:05

属性:原创来源:www.8media.com点击数:596

内容图文并茂,语言高度概括,文采形象生动,思路清晰可见;

指出要害,抓住关键,透彻理解那些难懂的编程概念; 唧

支柱不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英会员

max脚本 关于3dsmax脚本 script 基础教程

文单词作图形符号看待,拿脚本编程当文字游戏把玩。

能够提高解决问题的能力,可以降低学习脚本的门槛。

金币不用费力看英文帮助,何需辛苦找编程资料,减轻学习负担,节省宝贵时间!

279

枚 威发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后

max脚本 关于3dsmax脚本 script 基础教程

10

热心

1 虚心请教各位高手, 脚本编程从此不再难! 度----------------------------------------------------------------------------------------------------------------

三、创建和操作具有复杂关系的对象

常量;

变量,变量和属性的关系;

运算符和表达式;表达式:求值的规则,输入的每一行代码都是表达式,因

为它总是返回一个值。(www.61k.com]

对象引用:有的书叫双词模式(引用另外一个对象的属性值作为自己的值。); 数组和集合等:数组(一个系列的数据组合),数组和变量的关系;

流程控制:选择和循环,条件选择。

闻着春天里散发出来的花香味,忍不住去欣赏那些美丽的花朵,它们被一些长得井然有序的绿叶衬托着;穿过长着杂乱小草的林间小道,惊动了树上正在戏耍的鸟儿,它们飞向两旁看似有序又无序的青松翠竹林中,瞬间不见了踪影;走在马路上,两旁定有一排排梧桐或扬柳,如果你的眼力好的话,发现树的皮肤上有好多忙忙碌碌的蚂蚁;白天工作了一天,夜晚来到一个幽静的小河边,抬头望着满天繁星,低头看着水中的倒影,心情好多了,不禁思

潮起伏。

不管是四时花草树木,八方飞鸟走兽,无论是静止着的、运动着的,哪怕是无序的事物,都存在有一定的内在关系。那么到底是怎么样一个内在关系呢?

要有具体的内容啊!

最简单最常见的是对称关系,例如昆虫的翅膀,羊头上的角;还有直线关系,例如路边两边的树;最没规律的关系是那些运动着的和杂乱无章的事物,例如飞动着的鸟儿,忙碌着的蚂蚁,水中冒出的气泡,就把它们称为随机关系吧;既没有规律又很杂乱的关系是噪音关系,蝴蝶翩翩起舞的轨迹,杂乱的野草的分布状态;最美丽的关系是那些按一定的曲线而存在的事物,例如波澜起伏的水面,它是正弦波或者正弦波的叠加关系,小朋友向天空方向扔出的石块的运动轨迹,就是一条抛物线;还有起伏不平的崇山峻岭、狐狸摇动

着的尾巴,曲折前进的蛇类等等无不存在着某种关系。

max脚本 关于3dsmax脚本 script 基础教程

既然能找出这些事物的内在关系,能否用MAXScript来再现这种关系呢?答

案就是一个字:能!

1、常量和变量

要实现复杂的程序,首先要掌握数据的表现方法,在脚本中用常量和变量来表现。(www.61k.com)现实生活中有些事物是相对固定的,有些则是经常变化的。就拿人来说吧,人的性别是不变的,年龄是每过一年就增加一岁;拿我们用的电脑硬盘来说,总容量是不变的,但可用磁盘空间经常是变化的。在MAXScript中,把那些不能改变的量称为常量(Literal Constants,字面常量,简称常量),

可以变化的量称为变量(Variables)。

例如15,“Hello”等,从字面上一看就知道这些值是不能改变的,所以把常量又叫做字面常量,用age来年龄,而这个age是在变化的,所以age是变量。那么别人问李四的age是多少,去年问的时候李四也许回答是21岁,今年有人问李四,当然就是回答是22岁了。如果他回答age,那别人就不知道他的年龄了,他必须说出具体的数字出来。age是变量名,22岁是变量值。那么在MAXScript中该怎么表示?那就是给变量赋值,等于号是赋值符号,输入 age=22 ,脚本监听器中返回22,又如李四的银行存款 , 建行的是20000元,输入 money1=20000 , 工行的是36000,输入 money2=36000,请问用money表示李四这两个银行存款的总和,程序代码应该怎么写?没学过编程的人也许可能输入money=56000,呵呵,这个也没有什么错,不过输入money= money1+ money2,结果如何?一分钱也少不了,照样返回56000,程

序自己完成了加法计算,减轻了我们大脑的负担。

变量就像一个容器,可以存储不同类型的数据。数目,字符串,数组,对象

都可以存放在变量中。

现在就来详细解说变量。在程序运行期间,系统会在内存中为程序分配一块内存单元,用来存储各种不同类型的数据。而想访问这个内存单元,就要使用一个标识符来标识它,就像你到单位去找一个人一样,先要告诉这个人的名字。这个标识符就是变量名,内存单元中装载的数据就是变量值。程序可以通过变量名来读取数据。把数据放到内存中就是为变量赋值,=是赋值符

号。我们把上面的写在一块,如下:

money1=20000

money2=36000

max脚本 关于3dsmax脚本 script 基础教程

money= money1+ money2

当程序运行第一句代码时,分配一块内存,用money1作为这块内存的变量名,然后把2000装入这块内存中作为变量的值,第二句同上,运行到第三句时,分配一块内存,取名为money,程序取出money1和 money2中的数据让它们

相加 ,把相加的结果56000装入名为money的内存单元中。(www.61k.com]

现在回忆一下以前是如何改变对象属性的。例如前面提到改变box01的长度,语法是 $Box01.length=20,这和给变量赋值的语法是一样的。从这里可以看出,对象的属性实质上也是一个变量,只因为是对象特有的变量,就称为属性了,访问变量直接用变量名,访问属性要在属性名前加上对象名,中间用一个小数点隔开,称为点语法,这就是变量和属性的关系。既然可以把一个变量分配给另外一个变量,就可以把一个对象的属性分配给一个变量,也可以把一个变量分配给一个对象的属性,还可以把一个对象的属性分配给另外一个对象的属性,有的人把它称为双词模式。有的人会想,现在到了这一步,索性来个一不做二不休,把整个对象分配给一个变量,以后访问时更加

方便,这也是允许的。举例如下:

height=50

myBox=box length:20 width:20 height:height

zPos=mybox.height+10

mySphere=sphere radius:10 pos:[0,0,zPos]

结果如图3-1所示

图3-1

--第二句中height:height是把变量height分配给这个box的height属性,第三句是算出Z轴的坐标,准备分配给后面要产生的球体的Z轴坐标,第四句

pos:[0,0,zPos] 是把变量zPos的值分配给球体的Z轴。

注:鉴于要有一定基础,变量的作用范围(即全局变量和局部变量)和增量

放在第五部分了。

2、数组和集合

数组(array),是一系列有序数据的集合,每一个数据就是一个元素,它有

两种表现形式:

#( 表达式 1 , 表达式2 ?? )

max脚本 关于3dsmax脚本 script 基础教程

#( ) --空数组

例如把常量15,16.2,80这几个数据放在一起,就可以用数组存放:

#(15,16.2,80)

把变量放到数组中:

x=10

y=20

z=30

#(x,y,z)--返回#(10, 20, 30)

把数组分配给一个变量 :

arr=#(x,y,z)--返回#(10, 20, 30)

访问数组元素:

arr[2]--第二个元素,返回20

改变数组元素的值:

arr[1]=236

arr--再次访问数组时,其内部元素的值已经改变了,返回#(236, 20, 30)

选择集(selectionSet)

这个对应于手工在场景中命名的选择集,也可以用脚本命名选择集。(www.61k.com)

先创建几个对象,输入:

b01=box pos:[-50,-50,0]

b02=box pos:[50,-50,0]

sp01=sphere pos:[0,0,0]

sp02=sphere pos:[50,50,0]

sp03=sphere pos:[50,50,0]

下面的代码创建一个名字为"盒子集"的选择集,它包含有刚才创建的两个

box:

selectionSets["盒子集"]=$box*

下面的代码创建一个名字为"球体集"的选择集,它包含有刚才创建的两个

sphere:

max脚本 关于3dsmax脚本 script 基础教程

selectionSets["球体集"]=$sphere*

在工具栏中点击命名选择集按钮,可以看到刚才创建的选择集,如图3-2所

示。[www.61k.com)

图3-2

输入selectionSets["盒子集"][1],访问第一个元素,结果返回:

$Box:Box01 @ [-50.000000,-50.000000,0.000000]

输入move selectionSets["球体集"] [0,20,0],整个“球体集”向Y轴移

动了20。

集合(collections)

在使用MAXScript 时有许多值都是一系列的集合,很明显的有数组、 通配符路径名选择集,内置对象集。集合不用你特意去指定,它是系统自动完成

的。例如我们现在用下面的代码创建一些对象:

box()

box pos:[60,0,0]

box pos:[-60,0,0]

sphere pos:[0,70,0]

omnilight pos:[0,-100,150]

circle()

既然是自动完成的,那我们就直接访问了。访问场景中的对象可以使用路径名,前面讲过用路径名,访问单个对象用美元符号$加上对象的名字就可以了,但如果要把刚才创建的三个box一起向Y轴移动100,应该怎么办呢?使用

带有通配符的路径名:

$box*.pos.y=100

$box* 表示场景中所有以box开头的对象,*表示任意个字符。

如果把那三个box和一个球体一起操作呢?它们都是内置几何体对象集:

select geometry --选择所有的几何 体

geometry.pos=[0,0,0]-把所有的几何体移动到时原点

选择所有的对象,下面提供有两种方式:

select $* --以路径名的方式选择所有的对象

select objects --以内置对象集的方式选择所有的对象

max脚本 关于3dsmax脚本 script 基础教程

下面把内置对象集列出,以供参考:

对象集 (ObjectSet)

对象集是描述主场景对象种类的。(www.61k.com]

objects -- 全部对象

geometry -- 标准的 3ds Max 分类(categorie)

lights--灯光

cameras--摄像机

helpers--帮助物体

shapes--二维形状

systems--系统对象

spacewarps--空间扭曲

selection -- 当前选择的对象

集合的属性

接着上面的内容进行操作。

输入selectionSets["盒子集"].center 返回"盒子集"中心 [0,-50,12.5]

输入selectionSets["球体集"].count 返回"球体集"总数3

输入selectionSets["盒子集"].max 返回"盒子集"最大范围

[62.5,-37.5,25]

输入selectionSets["盒子集"].min返回"盒子集"最小范围

[-62.5,-62.5,0]

这四个属性适用于对象集(ObjectSet) ,路径名(PathName)、选择集

(selectionSet)等集合

max脚本 关于3dsmax脚本 script 基础教程

变量、数组和集合之间的关系

从数组、对象集、路径名、选择集等之间的定义可以知道,它们都是存放的数据,这些数据类型可以是数目,字符串,也可以是对象,这和变量是一样的用途,这么说来,它们的实质是变量的集合,因此把它们统称为集合(collections)。[www.61k.com)集合中的每一个元素都是一个变量,所以访问集合中的元素可以像访问数组中的元素一样来访问,对于数组中的每一个元素可以像对

待变量一样。输入:

Box()

Sphere()

然后选择它们,再输入:

selection[1]

监听器窗口中会返回第一个元素的路径名和位置。

3、表达式

要得到想要的值,就要对数据进行计算,计算规则不同,其结果也就不一样。例如2和3两个数据,按减法规则来计算,结果是-1,按加法来计算,结果是5。像这种按某种计算规则来求值的公式,MAXScript把它称为表达式(expressions,简写为expr),表达式是一种求值的规则。从语法的角度来看,用操作符把操作对象连接起来的式子称为表达式,有的编程语言也叫语句 (statements) ,意思一样。我们以前在学校里学的加减乘除四则运算也可以看作是最简单的表达式了,也就是说我们没有编程之前就会使用表达式了。前面提到的常量,变量,数组 ,构造器,函数以及输入的任何一句代码,都是表达式,因为总会返回一个值。 MAXScript有大多数编程语言常见的表达式,例如数学表达式(Math Expressions),比较表达式(comparison expressions ),逻辑表达式(Logical expressions ),以及MAXScript特有的关联表达式(Context expressions ),后面的教程会涉及。下面是

有效的表达式:

x=1

y=2*3+5

print y --输出y的值到屏幕上

上面的代码可以写成一块,这就是块表达式(block-expression):

(

max脚本 关于3dsmax脚本 script 基础教程

x=1

y=2*3+5

print y

)

还可以把这三行代码写成一行,用分号;把它们分开:

( x=1; y=2*3+5; print y )

几个常用的表达式

比较表达式(Comparison Expressions)

比较表达式总是返回两个布尔值中的一个,true 和 flase ,true(真)表示条件成立,flase(假)表示条件不成立。[www.61k.com)这个表达式特别有用,很多情况下都会用到,常常和 if ??then ??结合使用。比较表达式在小学数学中就有了,就是那些大于,等于,小于号连接起来的式子,有一点要注意,那就

是等于号要用两个=表示,一个是表示赋值符号。示例如下:

10= =10 --条件成立,返回 true

11= =10 --条件不能成立,返回 flase

11!= 10 --条件成立,返回 true

11>= 10 --条件成立,返回 true

11<= 10 --条件成立,返回 true

x=8

y=36

x>y--条件不能成立,返回 flase

逻辑表达式(Logical Expressions)

逻辑表达式有or、and 和 not 三种,同比较表达式一样返回一个布尔值 true 和 flase之一,它是对比较表达式的进一步组合计算,也就是说对true

和flase的重新组合,得到一个新的布尔值。

or(或),只要两者有一个成立,那么整个都成立,例如在中国发现了外星人或者在美国发现了外星人,只要有谁发现了一个,那么就说明这个宇宙上

还有另外的生命。示例:

max脚本 关于3dsmax脚本 script 基础教程

x=8

y=36

x= =8 or y= =8 --有一个成立,返回 true

and(与),两者要同时成立,才能整个成立,否则都不能成立。[www.61k.com)真是有福同享,有难同当的患难之交啊,一损俱损,一荣俱荣,关系密切。从中也可以看出些人生道理出来,那就是两个人合伙做事一定要同心协力,任何一个怀

有异心,就办不成事。示例:

x=8

y=36

x= =8 and y= =8 --有一个成立,另一个不成立,返回 flase

x= =8 and y= =36 --两者同时成立,返回 true

not(非),对立派,总是唱反调,你要上山,它就要下水,你说是对的,它

偏要说是错的。示例:

a=13

a>10 -- 返回 true

not a>10 -- 因为a>10 是true,所以not a>10返回 flase

Email: mediastime@126.com

-- Photoshop专家讲堂 VIP视频光盘销售中 回复 引用 TOP

?

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

地板 发表于 2006-12-12 18:38 | 只看该作者

www.8media.com点击数:428

内容图文并茂,语言高度概括,文采形象生动,思路清晰可见;

指出要害,抓住关键,透彻理解那些难懂的编程概念;

不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英作者:mediastime日期:2006-01-07 07:01:50属性:原创来源:唧 支柱

max脚本 关于3dsmax脚本 script 基础教程

会员

金币文单词作图形符号看待,拿脚本编程当文字游戏把玩。 能够提高解决问题的能力,可以降低学习脚本的门槛。 不用费力看英文帮助,何需辛苦找编程资料,减轻学习负担,节省宝贵时间!

279 发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后

max脚本 关于3dsmax脚本 script 基础教程

枚 威

10

1 虚心请教各位高手, 脚本编程从此不再难! 热心-----------------------------------------------------------------------------------------------------------------------------

4、流程控制

通过以前的学习,我们知道使用构造器来创建单个的对象,现在就来大量创

建对象,轻松地完成手工要费很大的力气才能完成的事。[www.61k.com]

for 循环

输入 :

for i in 1 to 4 do box pos:[i*50,0,0]

看看下面的flash动画可以形象的理解for循环。

for循环动画

if 条件

x=20

y=65

if x>y then print x else print "x没有y大"

--第三句的中文意思是:如果 x 大于 y 那么 打印 x 否则 打印 "x没有y

大" ,结果返回 "x没有y大"。继续输入:

x=70

if x>y then print x else print "x没有y大"

--结果返回70

综合使用

fc=freecamera pos:[-100,0,0]

rotate fc (EulerAngles 90 0 -90)

move fc [-100,0,0]

for i in 1 to 6 do sphere pos:[i*30,0,0] segments:16 radius:10

max脚本 关于3dsmax脚本 script 基础教程

输入上面代码,生成场景对象备用 ,结果如图3-3所示 。[www.61k.com)

图3-3

现在根据物体离摄影机的距离调整物体的分段数,摄影机在X轴-100位置上,离它最近的一个球体在X轴30的位置上。测量两个对象之间距离的函数是distance,输入:distance fc $sphere01 返回130.0,说明摄影机和左边

的第一个球体之间的距离是130。输入:

for i in $sphere* do

if distance fc i>160 then i.segs=4

距离摄影机大于160的球体分段数精简到4,结果如图3-4所示 。

图3-4

输入:

for i in $sphere* do (

if distance fc i>180 then i.segs=8

if distance fc i>240 then i.segs=4

)

注意,代码块要用( )包起来,不然程序只执行第一个if语句。这段代码使距离摄影机大于180的球体分段数精简到8,大于240的球体分段数精简到4,

结果如图3-5所示 。

图3-5

4、动画原理

设置两个不同的关键帧就可以动画了。输入下面的代码创建球体没X轴的运

动的动画:

s=Sphere pos:[-50,0,0] radius:10

animate on

(

at time 0 s.pos.x=-50

at time 100 s.pos.x=50

)

代码与界面的对应关系如图3-6所示。

max脚本 关于3dsmax脚本 script 基础教程

图3-6

四、换一角度——从大家熟悉的操作流程来学习脚本

这是对前面知识的总结,前面是对语法基本概念的学习,现在是从大家操作流程的角度来学习,一纵一横,让我们对脚本有个相对全面的了解,理论和

实际相互联系。(www.61k.com] 有了前面的基础才好学下面的内容。

第一步:创建物体

创建目标摄影机

方法见示例栏目中《地面和树-混合材质的用法》一文

第二步:选择物体

这里说的是广义上的选择,即操作指定的对象。以前要改变场景中的对象,首先要选择这个对象。在MAXScript中可以在对象没有被选中的情况下改变对象。这要综合运用前面讲到的路径名,选择集,内置对象集,流程控件等

等。

遍历选择集

先随便创建几个对象,然后选择它们,例如输入:

box()

box()

sphere()

cylinder()

sphere()

结果如图4-1所示。

图4-1

先用手工把它们全部选择,此时这些被选择的对象被称为选择(selection),这是对象集之一。输入下面的代码进行遍历选择的第一个对象,把它们的名

字显示出来:

for i in selection do print i.name

max脚本 关于3dsmax脚本 script 基础教程

返回结果如下:

"Box02"

"Cylinder01"

"Box01"

"Sphere02"

"Sphere01"

输入 selection.count,结果返回5,说明选择的总数是5个。(www.61k.com]

输入 selection[1],结果返回$Box:Box02 @

[0.000000,0.000000,0.000000],说明第一个元素是Box02。

这和前面的for循环有什么区别?前面的是for i in 1 to 4 do box pos:[i*50,0,0] , 变量i的范围在1到4,这里是对象集合selection,集合已经存在变量的范围了,这个变量 i 就是那些对象本身,遍历的次数就是选择的总数5,当第一次循环时,程序就找到选择集中的第一个元素Box02,相当于 selection[1],其它以此类推。下面的代码进行更复杂的操作,把它

们沿X轴间隔为40个单位进行分开:

for i in 1 to selection.count do selection.pos.x=selection.pos.x+i*40

结果如图4-2所示。

图4-2

这里的i是数目,selection是元素,是元素的索引,根据 i 的值指向对应

的元素,在这里是指向那五个对象之一。

根据指定条件选择

继续使用上面创建的对象。

示例1:根据对象是否具备某种属性来选择

for i in geometry where hasProperty i "radius" do i.pos=10 在创建的几何体中把具有半径属性的物体选择出来,并改变半径大小。结果那两个球体和一个圆柱体的半径变成10。where是表示指定的条件, hasProperty i "radius" 是条件,用来判断对象 i 是否具有 radius 属性,

返回true或者false。

max脚本 关于3dsmax脚本 script 基础教程

示例2:根据对象是否符合指定类来选择

for i in Geometry where classOf i = = box do i.pos = i.pos+[0,30,0]

两个box在原来位置向Y轴移动30,结果如图4-3所示。[www.61k.com]

图4-3

示例3:根据对象的属性值是否符合指定值来选择

for i in Geometry where i.pos.y ==0 do i.pos = i.pos+[0,30,0]

Y轴坐标为0的对象都向Y轴移动了30,结果如图4-4所示。

图4-4

第三步:变换物体

1、变换方法:postion,move,scale,rotate,前面已经讲过。

2、变换坐标系和变换中心

变换坐标系统:coordsys关联表达式

[ in ] coordsys world 使用世界空间坐标系统

[ in ] coordsys local 使用对象自身的坐标系统

[ in ] coordsys parent 使用对象的父坐标系统

[ in ] coordsys grid 使用网格坐标系统

[ in ] coordsys screen 使用屏幕坐标系统

[ in ] coordsys <node> 使用指定的节点对象坐标系统,相当于在界面中以

拾取的对象作为坐标系统

变换中心: about关联表达式

about selection 以选择集为变换中心

max脚本 关于3dsmax脚本 script 基础教程

about pivot 以对象的基准点为变换中心

about coordsys 以当前使用的坐标系统的原点为变换中心

about <node> 以拾取的节点对象的基准点为变换中心

示例一:基本功

先创建两个对象作为示例物体:

cy=cylinder()

b=box length:10 width:50 pos:[100,0,0]

结果图4-5所示

图4-5

然后分别执行下面的代码:

rotate b (EulerAngles 0 0 90)

--box旋转了自身90度,如图4-6所示。(www.61k.com)

图4-6

in coordsys world rotate b (EulerAngles 0 0 90)

--box旋转了自身90度,和上面相同,这是因为变换中心默认是使用对象自

身的基准点。

in coordsys world about coordsys rotate b (EulerAngles 0 0 45) --围绕世界坐标系旋转了45度,变换中心是世界坐标系中心,如图4-7所示。

图4-7

in coordsys cy about coordsys rotate b (EulerAngles 0 0 90) --变换坐标系是圆柱体cy,b以圆柱体cy坐标系原点为变换中心旋转了90

度,如图4-8所示。

图4-8

示例二:小应用--一张桌子四条凳

zhuozi=cylinder radius:80 height:60 wirecolor:white

for i in 1 to 4 do (

max脚本 关于3dsmax脚本 script 基础教程

dengzi=box length:50 height:40 pos:[100,0,0] wirecolor:white in coordsys zhuozi about coordsys rotate dengzi (EulerAngles 0 0

(90*i))

)

结果如图4-9所示。[www.61k.com]

图4-9

我家就这么简陋,如果不嫌弃的话,欢迎到我家来作客啊,粗茶淡饭还是有

招待的。

待续??

-- Photoshop专家讲堂 VIP视频光盘销售中 回复 引用 TOP

5楼

唧 发表于 2006-12-12 18:40 | 只看该作者 ?

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

呱maxscript入门教程(5)作者:mediastime日期:2006-01-07 08:00:40属性:原创来源:www.8media.com点击数:438

内容图文并茂,语言高度概括,文采形象生动,思路清晰可见;

指出要害,抓住关键,透彻理解那些难懂的编程概念;

不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英

文单词作图形符号看待,拿脚本编程当文字游戏把玩。

能够提高解决问题的能力,可以降低学习脚本的门槛。

支柱不用费力看英文帮助,何需辛苦找编程资料,减轻学习负担,节省宝贵时间! 会员

发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后金币

279

枚 威虚心请教各位高手, 脚本编程从此不再难!

max脚本 关于3dsmax脚本 script 基础教程

------------------------------------------------------------------10 ----------------------------------------------------------- 热心

1 五、基本的语法知识 1、注释

max脚本 关于3dsmax脚本 script 基础教程

注释在程序执行时会跳过,不会执行注释部分代码,它有助于理解代码的作

用,也可以用来说明作者、程序版本等信息。(www.61k.com]

单行注释,用两个--(减号)开头,后面跟注释内容。例如:

--下面是创建一个box的代码

box()

多行注释,以 /* 开头,以 */ 结尾,中间放入注释内容。例如:

/*

程序名称:入门教程

作者:mediastime

时间:2005年1月7日

*/

a=10

b=9

--下面是if 表达式,用途很大,必须花心思把它掌握

if a>b then print a else print b

2、代码布局

缩进,选择要缩进的代码,使用Tab键可以使它向右缩进,同时按住Shift+Tab

键可使它向右缩进。

换行,每一行代码用回车键结束,如果把多行代码写在一行,之间要用分号隔

开。例如:

x=1;y=2;z=x+y

如果是一行很长的代码,是不能用回车键的分行的,可用右斜杠连接两行代

码为一行,如下:

box length:100 width:100 height:20 wirecolor:(color 0 125 222)

lengthsegs:10 widthsegs:10 \

max脚本 关于3dsmax脚本 script 基础教程

name:"地面" pos:[0,0,0]

3、变量的范围

分为全局变量和局部变量

在程序运行过程中一直起作用的变量称为全局变量,只在某一代码块内有效

的变量称为局部变量。[www.61k.com)

声明全局变量

global i=10

声明局部变量

local i=10

示例:

global i=6

if i==6 do (

local j=20

j=i+j

print j

)

然后输入 print i 返回 6 ,输入 print j 返回 undefined,这说明j是局

部变量,只在if代码块中有效。

一般情况下,声明可以省略,程序自动判断是全局变量还是局部变量。

4、增量

在每一次循环过程中变量自己增加一定的量。

i=i+2

i=i-2

i=i*2

i=i/2

可以简写成

i+=2

max脚本 关于3dsmax脚本 script 基础教程

i-=2

i*=2

i/=2

示例:

j=0

for i in 1 to 4 do (

j=j+2

print j

)

结果返回:

2

4

6

8

OK

OK

5、数目值

整数(Integer):例如1,-8

浮点数(Float):实数,例如1.25,60.33

注意点:12与12.0的区别,例如输入12/100,结果返回0,输入12.0/100,结果返回0.12,输入10/100.0,结果也返回0.12,12/100全是整数,所以

返回结果也是整数。(www.61k.com)

整数和浮点数之间可以转换,输入12 as float,结果返回 12.0,输入12.36

as integer,结果返回12。

-- Photoshop专家讲堂 VIP视频光盘销售中 回复 引用 TOP

max脚本 关于3dsmax脚本 script 基础教程

6楼

max脚本 关于3dsmax脚本 script 基础教程

发表于 2006-12-12 18:43 | 只看该作者

/*

这是伏羲先天八卦,乾1兑2离3震4巽5坎6艮7坤8

据易经:天地定位,山泽通气,雷风相薄相,水火不相射

*/

--第一步

--创建数组为后面雕刻八卦用

? 呱arr8=#(#(0,0,0),#(0,0,1),#(0,1,0),#(0,1,1),#(1,1,1),#(1,1,0),#(1,0唧 ,1),#(1,0,0))

--创建八卦的文本

atext=#("乾","兑","离","震","坤","艮","坎","巽")

--创建一个倒角修改器

bev=bevel Level_1_Outline:1.4 Level_1_Height:2 Use_Level_2:1

Level_2_Outline:0 Level_2_Height:30\

支柱

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

会员

金币

279

枚 威

10

热心

1 use_Level_3:1 Level_3_Outline:-1.8 Level_3_Height:2 for i in 1 to 8 do ( --把八卦文本分布到八个对应的位置上 atex=text font:"隶书" text:atext prefix:"txt" pos:[0,300,0] in coordsys world about coordsys rotate atex (eulerangles 0 0 (45*(i-1))) --创建八卦的卦爻 for j in 1 to 3 do ( r=180+j*30 --创建八卦的卦爻

badd=box pos:[0,r,0] length:16 width:120 height:30 lengthSegs:5

widthSegs:10 heightSegs:4 \

prefix:"badd" wirecolor:white

in coordsys world about coordsys rotate badd (eulerangles 0 0

(45*(i-1)))

--创建给八卦的卦爻雕刻多余部分的雕刻刀。(www.61k.com]

if arr8[j] !=0 then(

bsub=box pos:[0,r,-2] length:22 width:30 height:34 lengthSegs:5

widthSegs:10 heightSegs:4\

max脚本 关于3dsmax脚本 script 基础教程

prefix:"bsub" wirecolor:white

in coordsys world about coordsys rotate bsub (eulerangles 0 0

(45*(i-1)))

)

)

)

--第四步

--合并卦爻并删除多余的部分

for i in $badd* do (if i.name != "badd01" then( $badd01+i;delete i))

--合并雕刻刀并删除多余的部分

for i in $bsub* do (if i.name != "bsub01" then( $bsub01+i;delete i))

--为八卦文本加上倒角修改器,并分配材质

for i in $txt* do (

addmodifier i

bei.material=currentMaterialLibrary["Metal_Dark_Gold"]

)

--雕刻卦爻并分配材质,然后光滑处理

$badd01-$bsub01

delete $bsub01

$badd01.material=currentMaterialLibrary["Metal_Dark_Gold"]

addmodifier $badd01 (meshsmooth())

--结束

max脚本 关于3dsmax脚本 script 基础教程

max脚本 关于3dsmax脚本 script 基础教程

-- 接任务,赚取用不完的金币 回复 引用 TOP

7楼

? 发表于 2006-12-12 18:45 | 只看该作者

--创建地面-- 呱唧

max脚本 关于3dsmax脚本 script 基础教程

ground=plane length:300 width:300 lengthsegs:10

widthsegs:10

modi=Noisemodifier strength:[0,0,31]

addmodifier grass modi

支柱

max脚本 关于3dsmax脚本 script 基础教程

会员金币279 --创建树-- tree01=box length:0 width:15 height:20 枚 威望10 热心度1 pos:[50,-45,-0.5] material:meditmaterials[1]

copy tree01 pos:[58,4,-0.5]

copy tree01 pos:[58,62,-0.5]

copy tree01 pos:[20,62,-0.5]

copy tree01 pos:[12,4,-0.5]

copy tree01 pos:[10,-45,-0.5]

--创建灯光--

omni1=omnilight castShadows:on

raytracedShadows:on pos:[50,-108,110] omni2=omnilight pos:[15,25,195]

--创建目标摄影机并设置摄影机视图--

ca=TargetCamera pos:[26,-96,17]

--摄影机的目标

tobj=targetobject pos:[26,-45,19]

--把目标关联到摄影机

ca.target=tobj

--把当前视图设置为目标摄影机视图

viewport.setCamera ca

--设置材质--

fnamedir=getdir(#maxroot)+"maps/"--贴图目录 fnameenv=fnamedir+"Skies/CLOUD2.JPG"--环境贴图路

environmentMap = Bitmaptexture

fileName:fnameenv--设置环境贴图

fnamegrass01=Bitmaptexture

filename:(fnamedir+"Ground/GRASS2.JPG")--混合贴

图1的纹理贴图路径

max脚本 关于3dsmax脚本 script 基础教程

fnamegrass02=Bitmaptexture

filename:(fnamedir+"Ground/GRYDIRT2.JPG")--混合

贴图2的纹理贴图路径

maskmap=Noise()--混合贴图的遮罩使用噪音贴图 m=mix map1:fnamegrass01 map2:fnamegrass02 mask:maskmap--创建一个混合贴图,赋给m

meditmaterials[2].diffusemap=m--材质编辑第二个插

槽的difuse贴图设置成混合贴图

ground.material=meditmaterials[2]--地面材质使用

材质编辑中第二个插槽中的材质

说明:树的贴图没有提供,可自己为材质1找一张树的

贴图。[www.61k.com]

三 : 关于基础等级(三)——题材的处理与选取


    基础等级中的“内容充实”就是对文章材料的质量的要求,即选材的要求。选材就是在占有材料的基础上根据主题的需要选择、运用并组织材料。凡可用于文章写作的客观事物和事理,统称为材料。材料是文章的“血肉”。没有材料,就等于是“巧妇难为无米之炊”,了,即使观点再新颖、正确,也会因空洞无物而使人印象不深。
    (一)材料来源
    材料最好能是亲身经历的,但一个十几岁的中学生不可能有那么多的”人生体验”,所以关键在于”积累”。积累的主要途径有:
    1?课本上的事例和事理。要经常温故知新,归纳整理。不要抱着金碗讨饭。
    2?留意观察身边的人和事,注意思考和提炼。这些事例由于是“亲历”的,往往能写出动人的文章来。
    3?听广播、看电视、读报刊杂志,做有心人,善于收集。
    4?同学之间的交谈和作文,有不少是值得借鉴的材料。
    5?老师平常讲课、谈话所引事例。
    6?试卷中的材料往往会成为写作的触发点。如2001年高考满分作文《赤兔之死》的作者,就由作文题目中的寓言材料,一下子联想到与“诚信”相关的吕布和关羽形象,巧妙地构思了”赤兔之死”,写出了人人称道的佳作。
    (二)选材要求
    1?围绕主题
    作文总是要表现某个主题的,与主题无关的材料,即使它再生动,也不能选用。如论点是“天才出于勤奋”,就要选一些天资并不突出的人或事例,说明他们是靠勤奋二字成就事业的。如果挑选一些天资本来就好的事例作论据,那扣题就不是很紧了,论证就缺乏针对性。
    2?真实典型
    “真实”就是要求材料符合实际,符合生活的逻辑;“典型”指材料能揭示事物的本质和规律,有代表性。这里要注意两点:一是运用理论论据和事实论据最好“慕名而选”,即选用名人名家的名言和事例。“我姥姥说”、“我妈妈说”或同学张三李四说,往往“人微言轻”,缺少分量;凡人琐事,往往体现不出典型性;名著名作中的事例可选用,大家不太熟悉的就要慎用。二是记叙文的选材与议论文选材有不同的特点。记叙文的选材不一定非得选用那些惊人的“大事”,往往一些看似平常的小事同样能反映事物的本质,此所谓“滴水也能见太阳的光辉”。如《琐忆》、《一件难忘的衬衫》均为“小事”,却充分表现了人物的思想境界,突出了主题。
    3?新颖生动
    “新颖”就是对旧材料能从新的角度加以分析,挖掘新的含义,或是采用别人文中未用过或很少用过的材料“生动”就是材料要有时代气息,有意味,有可读性。要做到这些,同学们要注意以下几点:
    一是选材以今以中为主时,尽量从生活中选择紧跟时代潮流,体现时代精神,反映现实问题的事例,这些事例总是新颖的,正所谓“江山代有才人出,各领风骚数百年”。选材以洋以古为主时,要选择那些历久弥新、洋为中用的事例,因为回归古典(如《赤兔之死》)、借鉴西方也是新颖生动的重要途径。
    二是选用名人事迹言论时,避熟就生,尽量不选为人熟知、人人皆用的。如有位作者在一篇《也说班门弄斧》的杂文中引用华罗庚说的“我总是反对‘不要班门弄斧’的成语,而应当改为‘弄斧必到班门’”这句话,就用得恰到好处,使文章增色不少。
    三是运用求异思维,打破惯有的思维定势,从相反角度观察、分析、理解事物,往往能使老掉牙的材料化腐朽为神奇,如前文所述的“滥竽充数”“伯乐相马”等材料即是。
    对于记叙文的选材,同样要善于把握角度,小中见大,平中见奇,从那些司空见惯的生活现象中,挖掘出新鲜生动的材料。请看下面一篇2002年考生的优秀文章:
    月若有情月长吟
    太阳最终吝啬地收起了它最后的一线亮光。月亮还没有出来,留下的只是满天的云霞,轻轻地亲吻着宁静的山村。
    我心急如焚地奔走在狭窄的村巷间,无心欣赏大自然的赠赐。我焦急地挨家挨户去筹钱为我妈治病。
    突然,一阵凄凉的哭声传入我的耳朵。“谁?这么晚了,他为啥哭?”我循着声音寻找,原来是一个小男孩。
    小男孩看见我,揪着我的裤管:“我迷路了,送我回家,好吗?”我本能地应了一声,就想抱起他走。突然,我触到了一束熟悉的目光。咦,这不是王医生的儿子吗?顿时,我心里轰起一腔怒火,王医生的影子又浮现在脑海。就是他,为了小小的一笔医药费而拒不为我妈治病!
    “走吧!现在的世道还会有多少人情?”我心里想着,脚下迈开了步子,这时,一声更凄厉的声音狠狠地剐了我一刀:难道真的丢下他不管?夜深了,难道就让他留在孤寂的野外,他不怕黑暗吗?他能抵抗动物侵害吗?……我打了个冷噤。啊!不能,我不能丢下他而去,我猛转身,我不能选择与道义相悖的行为。
    我轻轻地敲开了王医生家的门。我不理会他的语言与目光,只是快速地离开,我想我的心灵是纯净的,我不会因为金钱而丧失了做人的道德。我之所以走得如此迅速,不是因为愤怒,而是不愿在这块见利忘义的地方多呆一刻。
    月儿已经爬上了树梢,有了些许凉气。我仍然在为母亲治病筹钱。我坚信:人与人之间一定有人情的气息。
    当我拖着疲倦的身躯踏进家门的时候,我嗅到了一阵药味。我疑惑地询问我的母亲。妈妈只是微笑地递给我一封信。信上说:“谢谢你,把我的儿子送回家。你的行为给了我一次心灵的教育。在金钱与医德面前,我们应该选择医德。”
    我的眼睛有点湿,我推开窗:多美好的夜!多明亮的月!多明智的选择!人与人之间比金钱更珍贵的是友爱。
    温柔的月光如流水般倾泻而下,仿佛是滑过了一曲悦耳的琴声。哦!月若有情月长吟!
    这是一篇编故事写法的应试文。这位考生,编写了一个触动心灵,需要作出选择的故事,切合题意。故事以“我”为母亲治病筹钱作线索展开,通过“我”选择送迷路小孩回家,感化了王医生选择为“我”妈治病的事,表现“友爱比金钱更可贵”的主题。故事内容丰富,较好地反映了社会风貌。
    更值得一提的是,整个故事设置在月光下展开。开头写月景,为“心急如焚”作反衬。中间写月景,为“我坚信人间真情在”的美好心灵作映衬。卒章写月景,为深化主题,为抒发情怀大放异彩。回头再回味文章的标题,不更令人觉得意境深远吗?
    四是材料要具体。要善于让具体事实、数字说话,不要笼统地概述材料,甚至用一些模糊的材料。如有位同学论证“教育关系到国家民族的兴衰”这个观点时,写道:
    古今中外,很多国家、很多民族的兴盛,都是以重视教育、重视人才为先导;而哪个国家、哪个民族的衰微不是因为忽视了教育?特别是经济的发展与教育的关系更是不可分,不论哪个国家,哪个地区,经济要发展,教育要先行。所以,我们要建设四个现代化,就要使全民重视教育成为风气。
    这段话单说选材方面,写到了一大堆的判断,却没有举出一个具体的事实,这样,文章就缺乏说服力。
    (三)组材方法
    “组材”是文章构思的重要一环,它涉及到文章的结构形式和论证方法的运用。这里只说一些常见的组材技法。
    1.点面结合法
    所谓“点”,即典型性的材料,能够深刻体现主题和观点。对这样的材料要进行细致描写、深入分析,作为重点。所谓“面”,即指一般材料,只起辅助的作用,当以概述和列举为好。点面结合,能使文章在思想内容上既有深度又有广度。如有一位同学在写《父辈》这个题目时,对父亲送“我”去上大学、帮“我”办入学手续及整理床铺的一系列动作、语言等进行了详细地描写,而对其他同学的父亲的言行举止等作为一个整体略写,穿插其中,点面结合,有力地表现了父辈对下一代的关怀和厚望的主题。
    再如下面一篇习作:
    跛足•拳击•掌声•雪耻
    乔治•戈登•拜伦是英国伟大的浪漫主义诗人,可惜他从小是个跛足,很少参加体育锻炼。有一天,他在操场上看打球,健壮而顽皮的印司为了戏弄他,故意拉他去打球。拜伦只好一再推托。印司便找来了只竹篮,硬要他穿上,在操场上走一圈。面对挑衅,拜伦屈于体弱,不得不含泪忍辱从命。然而,这难以容忍的侮辱,却使他暗暗下定决心:锻炼!用强健的体魄来雪耻。面对重重困难,拜伦毫不气馁。他坚持不懈地锻炼,终于达到了目的。在一次学校的拳击赛上,拜伦犹如一头小狮,一拳将印司打倒,赢来了阵阵热烈的掌声。拜伦胜利了!
    虽然拜伦只是为个人争气、雪耻,但这种发愤图强的精神,难道不发人深省吗?
    我不禁想起我国著名书法家沈尹默练字的一则小故事。沈尹默25岁时,在杭州遇见了他的安徽朋友—陈独秀。一见面陈独秀就对沈尹默说:”昨天看见你写的一首诗,诗很好,字则其俗在骨。”这不加丝毫掩饰的当众批评,使沈尹默满脸羞愧。过后,他决心从头学起,从最基本的执笔开始,每天取一刀纸,用大笔蘸浓墨临写汉碑,墨迹干后,翻转再练行草,写满方止。如此几十年不间断。他广采博征,勤学苦练,经过长期的、艰苦的艺术实践,终于成为我国现代著名的书法家。
    我反复玩味这两件事,终于悟出了一个道理:一个人受了难堪的批评和侮辱,如果心灰意懒,从此一蹶不振,那只能蹉跎一生,一事无成,最终被时间所吞噬;如果变批评、侮辱为动力,自强不息,那就有成功的可能。古人司马迁,受了宫刑,发愤著书,这是众人皆知的。今人孙冶方,是个经济学家,在十年动乱中,蒙受不白之冤,被投入狱中达八年之久,在没有纸笔的情况下,却以惊人毅力,坚持构思,完成了三万多字的《我与经济界某些人的争论》一书的腹稿。
    此文所选材料,以拜伦、沈尹默的事例为“点”,详写,其余为“面”,略写。主次分明,点面结合。
    2?变换角度法
    从不同的角度刻画人物性格或选择论据,再按一定顺序组织起来,这是使文章全面充实、显出层次的有效办法。如唐弢的《琐忆》就是从对待青年、对待在思想战线上一起作战的人(“横眉冷对千夫指”)和对待敌人、对待变坏了的青年(“俯首甘为孺子牛”)两个方面来体现鲁迅先生作为一个伟大作家的全部人格的。下面是一篇2002年的高考作文,从不同角度选材,论证有力。
    选择中华魂
    翻开昔日的历史,寻找心灵的选择。
    1.英雄的选择
    你的目光,在黑夜中仍闪耀着灵性,只有你才拥有这样的目光,目光中似乎闪耀着晶莹的东西。荆轲,你流泪了吗?”风萧萧兮易水寒。壮士一去兮不复还。”荆轲啊,悲歌已在易水旁响起,你提着樊将军的人头,拿着用地图包裹好的匕首,义无反顾地踏上刺秦之路。
    为什么你要选择刺秦?难道你不知道这是死路一条?难道你不知道燕国必亡已成定局?难道你不知道有人在深爱着你?不,我想这些你应该都知道?而且比别人更清楚。然而你放弃了可以带着你心爱的人远走高飞的选择,毅然踏进了虎狼之地的秦国,你洒在秦国宫殿里的热血,渲染了你那光耀尘埃的英雄豪气。
    你使我明白要选择勇敢,选择诚信。
    2.王者的选择
    乌江旁,战马的悲嘶响彻云霄,你高举长矛,以横扫千军之势奋力拼杀,江上飘来一叶小舟,你没有选择逃亡,而是从容地自刎。你败了,彻底地败了。然而,你实际上是可以选择不败的,鸿门宴上,你可以杀掉刘邦,你可以不相信刘邦的承诺,而你却没有这样做。你虽然失败,可你以英雄的身份活在人们心中,刘邦虽然胜了,可他永远被人们称为小人。乌江旁,你本可逃走,而你却选择血染乌江,当鲜血从你身上喷出的那一刻,你的灵魂得到了升华。
    你使我明白要选择仁爱,选择无悔。
    3.科学家的选择
    你是在国家最困难的时候回来的,美国人曾扬言”宁可毙了你,也不让你回中国”。而你却拿生命作赌注,毅然踏上了回国路。
    你为什么要选择中国呢?要知道在美国你可以生活得很好,你可以不必在恶劣的环境中辛苦工作,不必忍受劳苦,而你却毫不犹豫地选择回到祖国,当中国的第一颗原子弹爆炸成功时,你会心地笑了。
    你使我明白要选择爱国,选择一颗爱国心。
    中国之所以能够以文明著称于世,正是由于华夏儿女有正确的选择,让我们选择我们的优良传统,选择龙的精神,选择中华魂。
    3?并列组合法
    几个材料相互并列,从不同的几个侧面来表现主题或证明论点,可达到内容丰富、说理充分的效果。
    如下面两篇文章节选:
    在人类文明史上,摈弃”前人栽树,后人乘凉”的人是不乏其例的。革命导师马克思的三个女儿,不以父辈的荣誉而自傲,而是各自努力地工作,干着同父辈一样的事业。上海市原市长曹荻秋同志的女儿曹晓兰,在其父平反昭雪后,放弃居住上海的优裕条件,继续留在安徽教书,为实现四化做着平凡的工作。她们的行动说明了什么?说明我们不能安逸地躺在父辈的功劳簿上,庸庸碌碌,最后像刘阿斗那样,被后人所唾弃。(《从刘禅说起……》)
    如果缺乏天文常识和不善于逻辑推理,屈原能写出《天问》?如果没有关于天文、地质、植物、光学的广博知识,歌德怎能成为一代诗哲?如果缺乏医学知识,契诃夫何以写出《第六病室》?如果缺乏人体解剖的知识,不懂得几何学的黄金分割和透视原理,达•芬奇、米开朗基罗和毕加索,又岂能成为绘画、雕塑大师?(《文理要并重》)
    以上两个片段,采用并列式组织了古今中外的例子,使说理全面、充分。
    采用这种并列式组织材料,要注意顺序的合理:或按时间(从古至今),或按空间(从中国到外国或从外国到中国),或按认识规律(由浅入深或从现象到实质),或按事物的主次、类别等排列,使之井然有序。
    运用并列组合法写议论文时,一定要防止堆砌论据的毛病,这是许多同学作文的一个通病。要克服这个毛病,除了要掌握几种行之有效的论证方法外(如正反对比论证、比喻论证、假设论证等),还要阐发材料本身所包含的思想意义,对材料有所分析。注意以下几点:
    一是运用典型事例后可进行分析。如有一篇《近墨者未必黑》的高考作文,作者在列举“南京路上好八连”这个典型事例后,马上阐释论据的意义说:
    为什么他们可以近墨而不黑呢?其关键,那就是他们在“香风”、“毒雾”面前,有着坚强的信念!有了坚强的革命信念与意志,任何资产阶级的生活方式都不能腐蚀他们。
    作者举例之后,接着便对事例本身所包含的思想意义进行分析,比起单纯的举例,就深刻得多。
    二是如果运用多个事例,则要注意综合分析。如果不进行综合分析,论据便是散的,文章就缺少整体感。如有位参加高考的同学写《读画蛋有感》,在举出“达•芬奇画蛋”、”巴格压尼学提琴”、“李少春练功”三个论据后,接着分析道:
    我们试想:达•芬奇如果没有名师这一番严格训练,他日后怎么可能成为一代艺术大师?巴格压尼如果没有孩提时代严格的基础训练,他怎么可能成为世界小提琴之王?如果我国著名京剧表演艺术家李少春没有苦练童子功、基本功,他怎么可能成为文武兼备的演员?他们都”画过蛋”,他们都经过严格的基础训练,为万丈高楼打下了坚实的基础!
    这一段文章的综合分析是很不错的。经作者一分析,所举的例证都拴在一起了,再也不会散乱。
    三是对理论论据,如革命导师的有关论述,以及人们所公认的公理、格言、谚语等,其涵义也应作适当的阐发。如有位同学在高考作文中引用了”先天下之忧而忧,后天下之乐而乐”之后,就立即阐发道:
    所谓“先天下之忧而忧,后天下之乐而乐”,它的意思是应当在天下人忧愁之前,先忧愁,在天下人享乐之后,再享乐。用现在的话说,就是吃苦在前,享乐在后。这句话,闪耀着理想的光彩,跳动着民族的脉搏,孕育着共产主义道德品质的萌芽。一个“先”字,一个“后”字,一个“忧”字,一个“乐”字,对比何等鲜明,真能启人深思!
    作者引用范仲淹的话,不是“一引而过”,而是对它的含义进行了阐发,从而避免“抄书”之嫌。
    另外,还可以借助哲学的观点,辩证地分析问题,注意矛盾的观点、对立统一的观点、相互联系的观点、发展的观点,等等,分析事物之间及事物内部的矛盾、斗争,分析它们的关系,分析对立面的相互转化,从而揭示事物的内涵,深化我们的议论。
    训练在线
    一、作文《谈谈意志和毅力》,不少同学的论点是:”坚忍不拔的意志和毅力是搞好学习、搞好工作、作出贡献的必要条件。”这些同学在说理后,便摆出事实。有的这样写道:
    有些科学家,为了研究一个项目,往往废寝忘食数年、数十年;有的工人,为了技术革新,竟连续几年早上班、迟下班;有的同学,为了学好英语,两年之中抄了近十本单词簿。这些都需要多么坚强的意志和巨大的毅力啊!
    有的同学这样写道:
    马克思为了写作《资本论》,连续多年在大英博物馆查阅资料,每当读书兴奋时,鞋底在地上一挫,年长日久,地板竟磨掉了一层;我国汉朝史学家司马迁,用了十年时间,在竹片上写了五十二万字的《史记》;科普读物作家高士其,凭着他微弱得难以分辨的声音,别人为他记录下数十万字的科学读物。他们这些人的意志和毅力多么坚强啊!
    上面两段文字,都是以举事实作为论据。你认为哪些事例说服力强?哪些事例无说服力?为什么?
    [提示]后者说服力强,前者说服力弱。因为前者引用的事例都是一些不具体的事例,如“有的”“有些”等,影响了文章说服力;而后者则相反。
    二、读下面这篇2001年高考作文,说说在选材和组材上有何特点。
    一生的思索
    可笑的我呵,总要用一生来思索这样一个问题……
    ——席慕容《疑问》
    十岁时
    老师在讲台前微笑着问:“今后,要做一个什么样的人呢?”周围的同学纷纷回答:”要做一个善良的人。”“要做一个有才能的人。”他默默的听着,不说话,暗暗思索着。小小的心灵第一次有了对人生的思索,他觉得充实而且有微微的激动。
    好久,他举起手,很庄重地回答:“我要做一个讲究诚信的人。”稚嫩的语调却充满了坚决。
    三十岁时
    十字路口,他等待着对面绿灯亮,准许行人通过。身旁一辆辆名贵汽车驶过,里面坐着的都是和自己差不多年纪的中年人。满脸事业有成后的意气风发。他觉得失落极了,自己在商界工作了十几年,却一事无成。他不会钻空子,用诚信待人却换不回回报。前阵子一宗很大的生意被多年的好朋友小张耍点手段就抢过去?“商界里你不懂尔虞我诈行吗?诚信顶什么用?”妻子就这样数落他。站在十字路口,他觉得迷茫,开始重新思索……
    四十岁
    车子、票子、房子……什么都有了,现在他叼着香烟,在沙发里得意的陶醉着。想想自己不过十年功夫,凭着小聪明,稍稍施点欺诈的手段,便有了今天的成就。诚信,靠边去吧,”兵不厌诈”嘛。就像徐杰以前说过的“我相信诺言,但不相信诺言的时代。”现在的时代,绝不是诚信的时代。
    六十岁时
    人老了,他也厌倦了商界的你欺我骗,他真想好好休息一下。他觉得寂寞,身边没有可以说话的人。以前的朋友都离他而去,朋友们都怕受到欺骗。有时他看见一些老人聚在一起下棋聊天,他也不敢过去。他悲哀地想:“难道我的选择错了吗?”
    七十岁时
    寂寞的晚年里,他常常会想起小时候的事情,想起自己儿时的真诚守信,那份美好的情感。小孙女这天跑着来问:“爷爷,老师问要做一个什么样的人。”他望着孙女稚嫩的脸,耳边响起自己十岁时铿锵的声音,他不禁落下泪来,摸着孙女的头,他说“一生中,诚信少不得呀!我现在才彻底明白了。”
    [提示]本文组材的最大特点是用并列组合法,将人一生中的五个生命时段“十岁时”、“三十岁时”“四十岁时”、“六十岁时”、“七十岁时”,用五个小标题,按时间顺序排列。本文选材的最大特点是典型,五个生命时段截取了五个生活场景,分别写出了“诚信”的萌发、迷茫、蜕变、回归和再生,照应了“题记”中的“用一生来思索”和题目中的“一生的思索”,使全文浑然一体。
本文标题:关于基础的名言-关于基础的名言警句
本文地址: http://www.61k.com/1153411.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1