postscript语言概论.ppt

上传人:牧羊曲112 文档编号:6514959 上传时间:2023-11-08 格式:PPT 页数:95 大小:1.43MB
返回 下载 相关 举报
postscript语言概论.ppt_第1页
第1页 / 共95页
postscript语言概论.ppt_第2页
第2页 / 共95页
postscript语言概论.ppt_第3页
第3页 / 共95页
postscript语言概论.ppt_第4页
第4页 / 共95页
postscript语言概论.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《postscript语言概论.ppt》由会员分享,可在线阅读,更多相关《postscript语言概论.ppt(95页珍藏版)》请在三一办公上搜索。

1、2023/11/8,1,页面描述语言,主讲:樊丽萍上海理工大学 出版印刷学院,2023/11/8,2,成绩评定方式,2023/11/8,3,第一章 概 论,1.1 页面描述语言的背景,1.页面描述语言PDL(Page Description Language),PostScript语言Adobe 公司,凡是用于描述电子页面的计算机语言,PCL语言HP(PCL3 PCL6)商务办公,Interpress语言Xerox公司JAM语言,DDL语言Image公司,插图文件描述语言,2023/11/8,4,起源:76年Evans&Sutherland计算机公司,定名:82年Adobe System公司,

2、应用:85年Apple的激光打印机,配有PS语言解释器,广泛应用:跨媒体出版、电子出版、CAD和办公自动化等,2.PS语言的历史背景出版业事实上的工业标准,78年由施乐Warnock和Newell重新实现,2023/11/8,5,75年北大王选开始研发汉字精密照排系统,85年制定中文页面描述语言,9093年 PS Level 2的中文页面解释器,3.中文页面描述语言的发展CPDL,76年开始研发汉字激光照排系统,PS Level 3 的中文页面解释器,2023/11/8,6,第一次技术革命:告别铅与火(19871993),第二次技术革新:告别报纸传真机(91年初开始),第三次技术革新:告别电子

3、分色机(92年起),4.中国印刷业的发展,第四次技术革新:告别纸和笔(软片)94年起,2023/11/8,7,具有的通用程序设计语言的基本结构;,1.PS语言的基本特征,具有较强文字、图形和图像处理功能;,1.2 PostScript 语言简介,构成由直线、弧和三次曲线组成的任意形状 的图形;可用任意颜色着色;,文字按图形方式进行处理,取样图像可以是任意的已有的彩色图像;,支持所有线性变换所组合的复合变换;,页面描述与设备无关,2023/11/8,8,2PS语言的发展,PostScript Level 1可以同时表示灰度矢量图 形和灰度位图图像。,PostScript Level 2 不仅可以

4、表示灰度矢量和 位图图形,还支持RGB、CYMK、以及基 于 CIE 的颜色模型,特别是嵌入了加网算法:精确加网。,PostScript Level 3 提供了色彩管理系统、解 释PDF数据等支持数字化工作流程的功能,2023/11/8,9,3.PS Level的基本特点,具备通用程序设计语言的特点,将数据和程序作为对象处理;,栈式语言:先进后出的数据访问规则;,逆波兰表示法:操作数在前,操作符在后,程序结构清晰,具有丰富的操作符,采用ASCII编码,序言:定义正文中的过程和变量,正文:由操作符完成页面描述和 序言中定义的过程,2023/11/8,10,具备页面描述语言的特点,成像模式:模拟印

5、刷工艺采用模板着色的技术,4.PostScript Level 2的新增特点,具有丰富的图形和图像操作符,存储管理技术全局虚拟内存机制;,提供了文字输出的字库与控制方法。,提供了资源管理技术定义、寻找和删除资 源的操作;,增加了二进制编码,提高运行速度 压缩数据;,2023/11/8,11,利用过滤器对数据进行转换(解码或编码数 据的转换),引进了彩色空间技术,扩大了图形图像功能(用户路径、模板、内点 测试等),引进了复合字库Adobe Type 0,增加了文本结构的约定DSC(Document Structure Conventions),2023/11/8,12,5.PostScript

6、Level 3的新增特点,增强的图像技术渐变图案、裁剪路径栈 蒙版图像等;,支持数字工作流程可以实施RIP时的补漏 白;色彩管理功能和按 照ICC特性曲线进行实 施RIP的功能。,复杂页面的处理字体格式、过滤器类 型的增加,2023/11/8,13,1.3 PS解释器的工作原理,现代计算机技术应用有两种基本原理,在程序生成之后,计算机二进制编码,保持语言的程序状态,解释器,在程序生成之后,计算机二进制编码,高级编程语言指令,编译器,2023/11/8,14,1PS解释器作用:,将由PS语言所描述的矢量文件转化为光栅输 出设备能识别的点阵信息。,控制显示器、打印机和照排机等光栅输出 设备的动作。

7、,网络出版HTML或XML语言,输出页面,电子页面(排版软件),印刷品,PS文件,PCL文件LIPS等,2023/11/8,15,2PS解释器与应用程序之间的通讯,传统的仅供输出的打印模式,集成显示器模式,交互式编程语言模式,应用程序,PS解释器,输出设备,应用程序,PS解释器,(交互式显示器),程序员,PS解释器,(任意设备),2023/11/8,16,1.4 PostScript文件,使用PostScript页面描述语言生成的文件简称PS文件,1PS文件的外部特点,后缀名为.ps或.eps;,通常以%!ps 作为ps文件的开始;,2PS文件创建的方法,直接用PS语言来编写:,独立性和封装性

8、,记事簿,文件后缀名为:.ps或.eps,通过打印生成PS文件,利用应用软件来创建,(虚拟的)PS打印机,.prn文件,.ps文件,2023/11/8,17,3PS文件的输出,PS程序的处理方式是:对象序列边读边执行,屏幕阅读,通过某一PS文件阅读器的显示(解释)得到所描述的页面,PDF格式文件,图形应用软件,Acrobat Distiller,或,屏幕显示,导入,PS文件的硬拷贝输出,PS打印机、有PIP功能的照排机、数字印刷机等,Ghostscript,或,直接,Ghostscript,非PS打印机,2023/11/8,18,1.5 文本结构约定与PS文件构成,处理后的PS代码,PS解释器

9、,1文本结构约定(DSC),含DSC注释的PS代码,2DSC的语法描述,每个语句以开始;采用传统的操作符前缀表示法;数据类型有文件名、字库名、正文名、图案名、资源等;,高效率解释,2023/11/8,19,3PS的文件结构,序言,描述,头部分:系统环境,PS文件,默认部分:页面中重复的注释,过程定义部分:过程定义,文本设置部分:设备和参数设置,页面部分:内容描述,文本尾部:扫尾处理,2023/11/8,20,序言,%!PS-Adobe-3.0DSC comments only%EndComments,%BeginDefaults%EndDefaults,%BeginProlog%BeginRe

10、source:procset name1PostScript code and DSC comments%EndResource%EndProlog.%BeginProlog%BeginResource:process namenPostScript code and DSC comments%EndResource%EndProlog,2023/11/8,21,描述,%BeginSetupPostScript code and DSC comments%EndSetup,%Page:label1 ordinal1DSC comments only%BeginPageSetupPostScri

11、pt code and DSC comments%EndPageSetupPostScript code and DSC comments%PageTrailerPostScript code and DSC comments.%Page:labeln ordinaln.,%TrailerPostScript code and DSC comments%EOF,2023/11/8,22,4.PS文本结构的特点,序列次序:同一层次的结构元素具有序列次序,两者之间的关系:,每个结构元素后面紧跟所有的下属;,层次结构:文本、页面、标记;,先于某同级结构元素的任何结构元素,其 下属也先于该同级结构元素

12、;,2023/11/8,23,习题1,1.页面描述语言的概念。2.PS语言的基本特点是什么?从网上了解2种以上的页面描述语言的特点。3.利用图形软件在缺省页面上创建边长为10cm 黄色填充的正方形,生成PS文件。并写出PS 文件的头文件源代码。,2023/11/8,24,%!ps%new101.ps/cm 72 2.54 div muldef5 cm 5 cm translate0 0 10 cm 10 cm 4 copyrectstroke%对正方形描边0 0 1 0 setcmykcolor rectfill showpage,2023/11/8,25,第二章 PostScript语言的基

13、本结构,2.1 PS语言的编码方式,一、ASCII编码(level 1)(P18),1.空白字符:用于分割语法实体;即PS的对象,用于阐述目的、存储文件以及由通道进行的信息传递;,空格字符(Space)、制表符(Tab)、新行符(Enter),2.特殊字符:表示特定的PS对象,并分割PS对象,字符串();数组:;过程:;词典;十六进制:;注释:%;名字对象:/;等,2023/11/8,26,3常规字符:,除了空白字符和特定字符以外的所有可打印字符。,二、二进制编码(level 2以上),二进制标记编码把PS语言的对象表示成单个语法项(Syntactic Entities),它强调压缩效果;可以

14、比ASCII编码用更少的字符来表示PS语言中的大部分对象。,1.二进制标记编码(Binary Token Encoding),特点:不完全性 混合编码,2023/11/8,27,2二进制对象序列编码(Binary Object Sequence Encoding),二进制对象序列编码把一个或多个PS对象的序列表示成单个语法项数组,并立即执行这个数组。它能有效地进行解释和生成。,三、注释:,由%和新行符之间的字符序列构成一个注释;,%example 1.ps/n 4 def%定义n的值为4n 6 add%n+6=10 把计算结果输出到标准输出文件中,Abc%comment/%blah123,20

15、23/11/8,28,2.2 数据类型与对象,一、对象的概念:,1概念:PS扫描程序可访问的所有的数据;,2表现形式:由PS操作符产生、管理和撤消,并由解释器执行。,类型(唯一,为本身所有),简单对象,3特征(三大要素),复合对象,属性(多种),值(唯一),字面属性,可执行属性,存取属性,2023/11/8,29,二、对象分类,1简单对象(原子型实体):,指对象中再无可见的子结构,当复制该对象时,三要素均复制。,指对象中有可见的内部结构,当复制该对象时,其值不复制。(即新老对象共享一个值),2复合对象:,3区别:复制对象时产生的结果不一样。,2023/11/8,30,三、对象的属性,1字面属性

16、和可执行属性,字面属性,文字性,数据,压入操作数栈,可执行属性,立即执行,推迟执行,整数、实数、字符串、数组、词典等对象具 有字面属性;,过程、操作符等具有可执行属性;,以“/”开头的名字对象具有字面属性,否则具有可执行属性。,2023/11/8,31,2存取属性复合对象具有的属性。,无限制属性,只读属性,只执行属性,空属性,四、PS对象,1.简单对象,数值对象:integer and real,整型:231 1231;若超过 该值将自动转换为实型,实型:1038 1038;精确 到小数点8位;,属性:字面属性值:数据本身,2023/11/8,32,数值,带符号数:正、负整数和0;标记为整型对

17、象,实数:浮点数(2.35、-2.35)和指数(1E-5、2.3E10);标记为实型对象,不同进制数:base#number标记为整型对象,基数(base):236;base10;,number:是base进制中的数值,由0 base-1之间的数值组成,大于9的 数值用az或AZ表示。,如:1010=1*23+0*22+1*21+0*20=10,8#1707=1*83+7*82+0*81+7*80=967,16#1FDE=1*163+15*162+13*161+14*160=8158,2023/11/8,33,名字对象(name),任何由常规字符组成且不能解释为数值的字符序列;,如:Abc、1

18、3A等。可作为变量名或过程名,特点:唯一性:两个字符序列相同的名字为同一对象;属性:字面属性若名字前面有“/”,否则具有可执行属性;值:没有值;但与词典中的一个值或操作相对应,/inch 72 def%inch这个变量与72相对应,/y 5 add def%y与一个过程5 add相对应,字面属性,2023/11/8,34,操作符对象(operator)可执行名字对象,add“是两个数相加”的操作,表示PS语言的内部动作;,名字关键词,值操作符本身,属性:可执行属性;值:内部操作;(内部函数),40 60 add,可执行属性,100,2023/11/8,35,布尔型对象(Boolean)逻辑值,

19、布尔对象的值,true:逻辑真或条件成立,false:逻辑假或条件不成立,属性:字面属性,标记对象(mark):用于标记操作数栈中的位置,;等操作符来完成,空对象(null)null对象相对应,用来填充复合对象中的空位置,2023/11/8,36,2.复合对象,串(string):容量为65535 字面属性,字符串:用常用字符由()组成的字符正文,如:(This is a book)show;,由“”反斜杠引导转义字符;,2023/11/8,37,十六进制编码串(左结合),(This is a square.n376)show,This is a square.,用newline或“”在显示时

20、,可忽略一个串被分 成几行,用0和AF或af,由组成的十六进制编码数据;,90、3f、d0三对十六进制代码,ASCIIbased85(!u、Z),由组成的基于85的ASCII字符组成的数据,2023/11/8,38,数组对象(array)字面属性,用“”构造的可以通过数值索引进行访问对象的一维对象的集合;,索引号从0n;n65536;数组中的元素可以是任意类型的PS对象;多维数组由一维数组提供;如:1 23 4PS解释器对遇到的所有数组元素都进行作用,数组是执行的结果。,5 ab 1 2,5、ab、1 2,1 2 add,3,2023/11/8,39,过程(process):(视为函数),由标

21、记对象“”构成的数组称为可执行数组(过程);,数组是执行的结果,而过程则是扫描的结果,过程属性,字面属性,可执行属性推迟执行,1 2 add,3,1 2 add,1 2 add,2023/11/8,40,词典对象(dictionary)字面属性,用 构造,以一对PS对象为元素的数据类型,PS语言中三个缺省的词典:用户词典(userdict):位于局部虚存中的可写词典 全局词典(globaldict):位于全局虚存中的可写词典;系统词典(systemdict):存放所有PS操作符与其值(只读),基本结构为:key1 value1 key2 value2 n65535;,例:/D 4/pagesi

22、ze 612 792/Collate false,/D 4 def%将d=4作为一对存入当前用户词典,2023/11/8,41,文件对象(file):字面属性,是一个由结束符结束的、可读写、有限的字符流构成,用于PS解释器和它环境之间进行的数据通讯。,其他对象 save:表示内存状态的某一瞬间;gstate:表示保存一个完整的图形状态;FontID:用于构造字库的特殊对象;,2023/11/8,42,2.3 PS的执行环境,一、栈,栈(stack):是一种运算受限的线性表;仅允 许在表的一端作插入(进栈和删 除(出栈)的运算。,用来存放PS的操作对象和操作符执行的结果,该栈直接受控于当前程序。

23、,1操作数栈:,常用操作数栈管理操作符:,pop:将栈顶元素弹出丢弃;格式:any pop,1 2 3 pop,1 2,1 2 3 pop pop,1,2023/11/8,43,exch:交换栈顶的两个元素;,1 3 3,2 1,copy:复制栈顶的n个元素;格式:any1anyn n copy,any1anyn any1anyn,例:1 2 3 2 copy,例:1 2 3 2 3,2023/11/8,44,roll:将n个元素循环向上或向下移动j次,格式:,注意:n为栈中元素的个数;操作数栈中至少有n+2的位置;,其中:若j0则表示向上移动j次;若j0则表示向下移动j次;,2023/11/

24、8,45,例:1 3 5 7 4 2 roll,5 7 1 3,1 3 5 7 3-2 roll,1 7 3 5,2023/11/8,46,index:复制操作数栈中的某个元素;,格式:,其中:j表示(索引号)从栈顶元素数(0)起 的第j个数;,例:1 3 5 7 3 index,1 3 5 7 1,2023/11/8,47,2词典栈,用于保存词典对象,但栈底的三个词典不能被弹出(该栈直接受控于当前程序),常用词典操作符:,begin:将dict压入词典栈,使之成为当前词典 格式:dict begin,end:从词典栈中弹出当前词典;注意:该操作符没有任何操作数,2023/11/8,48,de

25、f:使得key与value在当前词典中相关联,格式:key value def,若key在当前词典中已经出现,那么def就替换它的值。,/name name 1 add def%名字对象name 现在的值被定义为2,例:/name 1 def%在当前词典中名字对象name 被定义为1,2023/11/8,49,get:从数组、词典或串的值中获取单个元素,格式:,31,98(ASCII值),例:/mykey(myvalue)def,(myvalue),2023/11/8,50,put:替换数组、词典或串中的单个元素的值,格式:,例:/array 5 7 9 11 def array 2(abc)

26、put,5 7(abc)11,d forall(枚举),例:/d 5 dict def d/abc 123 put,/abc 123,newarray,newdict,newstring,2023/11/8,51,例:/string(abcd)def string 0 65 put,(Abcd),aload:,把数组中所有的元素压入操作数栈,最后在把数组压入操作数栈中;,1 3 5 71 3 5 7,例:1 3 5 7 aload 2 get,1 3 5 7 5,2023/11/8,52,length:得到复合对象中元素的个数,若名字对象,则返回该名字正文串中的字符数,例:1 2 3 leng

27、th,3,mydict/abc(ABC)put,例:/mydict 5 dict def mydict length,mydict length,例:/too length,3,0,1,2023/11/8,53,3执行栈(程序的调用栈),保存执行对象(过程和文件);受控于解释器,只能阅读,不能修改。,4图形状态栈,5裁剪路径栈,用于存放图形状态参数,保存当前裁剪路径对象,2023/11/8,54,例2.1写出下列程序结果,%!ps%new201.ps/inch 72 mul def/colors1 0 0 0 1 00 0 1def/xpos 1 inch def/xinc 1 inch de

28、f5 setlinewidth0 1 2 colors exch get aload pop setrgbcolor xpos 2 inch 1 inch 3 inch 4 copy rectfill 0 0 0 setrgbcolor rectstroke/xpos xpos xinc add def forshowpage,2023/11/8,55,2023/11/8,56,二、存储器(虚存)管理,1虚存(Virtual Memory),用来存储复合对象值的内存区域,123:整数对象;压入操作数栈;,123(Here is a string),(Here is a string):字符串对

29、象;压入操作数栈;对象中包含了一个指向其值的指针,其值是存放在VM中,123,(Here is a string),2023/11/8,57,2VM的分类,局部VM(local):存放与程序结构有关的复合 对象的值,特点:当程序某一结构结束时,与此有关的VM被释放对VM中内容的修改受到save、restore控制 在缺省状态下,VM为局部VM,全局VM(global):用来存放与程序结构无关的 复合对象的值,特点:整个程序执行过程中一直存在的复合对象的值 在程序执行期间不受程序结构控制 save和restore的操作不影响对全局VM对象的修改,2023/11/8,58,3申请方式,隐式申请:在

30、创建复合对象时由扫描器该对 象申请的空间,如:()、,array、dict、string、gstate以及标记对象、等,显式申请:用操作符创建复合对象,并为其 申请空间,40 array 6 string 8 dict,2023/11/8,59,全局VM的申请setglobal,true setglobal:申请全局VMfalse setglobal:申请局部VM,例:/lstr(string1)def%申请局部VM/ldict 10 dict def%申请局部VMtrue setglobal%切换为全局VM的申请模式/gstr(string2)def%申请全局VM/gdict 5 dict

31、def%申请全局VM,gdict/a lstr put%非法 lstr可能被释放gdict/b 5 put%合法,2023/11/8,60,注意:全局VM中的对象若包含对局部VM中对象的引 用是非法的 简单对象可作为全局或局部VM中对象的元素,save:保留局部的VM的状态,返回一个代表这 个状态的save对象;Restore:使局部的VM状态恢复到由前一个save 保留的VM状态(字符串除外),作用:保持页面描述的独立性 封装嵌入程序对页面的影响;显式地回收局部VM的空间,4.save和restore,2023/11/8,61,三、标准输入输出文件,1文件(file),指存储在外部介质上数据

32、的集合,2标准输入文件(%stdin),PS解释器通过文件来接受可执行的PS程序 通过文件与外部环境交换数据,PS程序能够读取字符序列的源程序(文件),由PS解释器当前执行的程序序列;(PS解释器默认从标准输入文件中读取数据),(%stdin)(r)file,创建文件对象,2023/11/8,62,3.标准输出文件(%stdout),PS程序能够往上写字符的目的程序(文件),如:%file1.ps%文件开头,文件名/str 20 string def 123 456 add str cvs%(串(579)print(text)=,或print或=把任意数据传送到标准输出文件中,则该程序将在标准

33、输出文件中输出579和串text,(%stdout)(w)file,生成文件对象,2023/11/8,63,4.命名文件,(命名文件)(存取属性)file,存取属性,生成文件对象,2023/11/8,64,5.文件操作符,file read,file string readstring,readhexstring和writehexstring:读写文件中以十六进制记法表示二进制数据,boolean:ture操作成功,false遇到文件结束符,file int write,将单个字符加入到文件中(0-255),int boolean,从输入文件中读下一个字符,file string writes

34、tring,substring boolean,file string readline,substring boolean,2023/11/8,65,例2.2写出下列程序运行结果%!ps%new202.ps/str 100 string defcurrentfile str readlinehere is a line of textpop/textline exch def(e:Fan_LipingPStestnew2020.ps)(w)file textline(str)writestring,here is a line of text,2023/11/8,66,四、PS程序的初始执行

35、环境特点,1.空的操作数栈2.包含三个标准词典的词典栈3.空的执行栈、图形状态栈和裁剪路径栈4.虚存的申请模式为局部虚存5.包含缺省图形状态参数的图形状态数据结构,2023/11/8,67,2.4 PS对象的执行方式,1立即执行,对扫描到的PS对象立即执行该对象,并做相应的操作,例2.3 写出PS解释器执行下列程序段的过程 40 60 add 2 div,50,add和div 立即执行,40、60、2推迟执行,2023/11/8,68,40、60、average等推迟执行,2.推迟执行,对遇到的PS对象暂缓执行的操作,例2.4 写出PS解释器执行下列程序段的过程/average add 2 d

36、iv def 40 60 average,50,def和average 立即执行,2023/11/8,69,3.PS执行规则:,字面属性的对象,被作为数据压入操作数栈 当解释器直接遇到过程时,被作为数据压入 到操作数栈;而间接遇到过程时,则作为其 他对象的值立即执行,依次执行其中的对象可执行名字对象,在词典栈中查找其对应的 值,立即执行;操作符对象,立即执行完成PS的内部操作;把文件对象压入执行栈中,读取其中字符,并解释为PS对象;空对象:不做任何操作。,2023/11/8,70,2.5早期名字联编的概念与具体的实现,/average add 2 div def 当调用average时,add

37、和div都将需要查阅其值,在名字对象执行时查阅该对象值的行为,早期联编(early-binding):,推迟联编(late-binding):,在名字对象执行之前查阅该对象值的行为,实现早期联编的方法:,bind操作符:名字对象的值是操作符,即演名(immediately evaluated name):其他名字对象,2023/11/8,71,1.即演名字:,名字前面加了两个斜杠的名字对象,例2.5%!PS EPSF-3.0/PI 3.14159 def/result add/PI div def90 45 result=,提高程序的运行速度;直接引用固定的对象,则该程序将在标准输出文件中输出

38、42.971871,特点:,已经用相应的值替换了名字对象PI,2023/11/8,72,2.Bind操作符:,操作符替代:用相应的操作符对象替代名字对 象。(省略查找过程),例:/average add 2 div bind def,特点:使名字对应的值不变提高PS程序的运行速度,idiom识辨:用高效率的PS描述替换低效率的 PS描述,已经用相应的值替换操作符add和div,2023/11/8,73,例2.6:写出下列程序运行结果%!ps/inch 72 mul def0.5 inch 0.5 inch translate/ins 0.1 def 0 0.1 1.0 0 0 moveto 0

39、.7 inch 0 rlineto 0 4 inch rlineto-0.7 inch 0 rlineto closepath gsave 0 ins 0 0 setcmykcolor fill grestore 0 setgray stroke/ins 0.1 ins add def 0.7 inch 0 translate forshowpage,2023/11/8,74,2023/11/8,75,%!ps/inch 72 mul def0.5 inch 0.5 inch translate/ins 0.1 def0 0.1 1.0 0 0 moveto 0.7 inch 0 rlinet

40、o 0 4 inch rlineto-0.7 inch 0 rlineto closepath gsave0 ins 0 0 setcmykcolor fill grestore0 setgray stroke/ins 0.1/ins add def0.7 inch 0 translate forshowpage,2023/11/8,76,2023/11/8,77,%!ps/inch 72 mul bind def0.5 inch 0.5 inch translate/ins 0.1 def 0 0.1 1.0 0 0 moveto 0.7 inch 0 rlineto 0 4 inch rl

41、ineto-0.7 inch 0 rlineto closepath gsave 0 ins 0 0 setcmykcolor fill grestore 0 setgray stroke/ins 0.1 ins add def 0.7 inch 0 translate forshowpage,2023/11/8,78,2023/11/8,79,2.6常用的数学操作符,一、双操作数的数学操作符,1Add(+),2.sub(subtract)(-),3.mul(multiply)(*),若num1和num2为整数,则其和、差、乘积为整数,否则为实数,2023/11/8,80,4div(divis

42、ion)(),5idiv(integral division)整除,2023/11/8,81,6.mod(modulus)取模(实际意义上的取余运算),remainder的符号与int1的符号相同,且为整数,二、单操作数的数学操作符,1abs(absolute)求绝对值,2023/11/8,82,2.neg(negative)求相反数,3.ceiling 求大于或等于num1的最小整数num2,注意:num2的类型与num1的类型相同,2023/11/8,83,4floor求小于或等于num1的最大整数num2,5round求最接近于num1的整数值,注意:num2的类型与num1的类型相同,

43、如果有两个值都接近于num1的值,则取两值中较大的值;num2类型与num1类型相同;,2023/11/8,84,6truncate求某个数的整数部分;,7Sqrt:求某个数的平方根(结果为实数),注意:num2的类型与num1的类型相同;(去除小数部分),三、函数,2023/11/8,85,4.对数:le(自然对数)、log(以10为底对数),5.n次幂函数 exp,例2.7 编写程序,求多项式2x24x+y 当x=2,y=-1时的值,并输出到标准输出文件中。%!PS%case1.ps/x 2 def/y-1 def/z x x mul def/u 4 x mul def2 z mul u

44、sub y add=,2023/11/8,86,2.7 PS资源、函数和过滤器,一、资源存放于全局虚存,资源(资源类),常规资源,是一组命名对象的集合。即由PS内部定义的,并可由PS程序直接调用的PS对象的集合,隐式资源,资源实例对象,资源类和资源实例都对应着相应的名字来标识,字库(类)/Font,资源实例内部功能,/Times-Roman字体(实例),包含字符的描述信息,2023/11/8,87,常规资源类,2023/11/8,88,隐式资源类,2023/11/8,89,二、过滤器(filter)特殊类型的文件对象,1过滤器:,对文件中读出或写入的字符数据根据过滤器的种类进行解码或编码。,2

45、过滤器的分类,编码过滤器(encoding),输出文件,接受写入数据,并将其转换为该过滤器特有的编码数据写入基文件中(目标文件)(所有编码过滤器的名字都嵌有encode),ASCIIHexEncode,将二进制数据编码为十六进制表示,2023/11/8,90,解码过滤器(decoding),输入文件,从基文件中读入编码数据,并将其解码为原来的数据。(所有解码过滤器的名字都嵌有decode),ASCII85Encode与ASCII85DecodeLZWEncode与 LZWDecodeDCTEncode与 DCTDecodeCCITTFaxEncode与CCITTFaxDecode,ASCIIH

46、exDecode,将ASCII十六进制编码数据解码,生成原来的二进制数据,3.标准过滤器,2023/11/8,91,作业:,1构成PS对象的三大要素是什么?2操作符对象的定义是什么?3数组与过程的区别是什么?4词典栈中缺省的三个词典分别是什么?5构造名字为dict1可包含5个元素的词典对象,其中一个元素a的值为(abcd)。6.什么是栈?PS解释器管理那几种用来表示PS 程序执行状态的栈?7.过滤器的作用是什么?主要有那两类过滤器,2023/11/8,92,8.写出PS解释器执行下列程序段的过程或结果,/d 3 def 7.5 d add 20 pop/d 3 def 7.5 20 d exc

47、h add pop 0(a mixed type array)add 2 div 1 get/ab(ABCDe)def ab 3 get dup div ab exch 98 put(a)(b)(c)(d)3 1 roll20 5 mul 125 sub abs sqrt/a 20 def/b 100 def/c sub 15 idiv def a b c 3 mod/A mul 3 1 roll mul add 4 sub def 5 dup 6 dup A,2023/11/8,93,9.编写程序:求多项式3x24xy-|y|-6 当x=10,y=-8时的值 并输出到标准输出文件中。求当x=

48、5时,(3x-4)除以3的模,输出到D盘目录名为myfolder的文件夹中10.写出下列程序的运行结果:根据e2101.ps程序说明copy的实际含义,2023/11/8,94,/x 5 def/str 20 string def3 x mul 4 sub 3 mod str cvs(d:myfolder 202.ps)(w)file str writestring,2023/11/8,95,%!ps%e2101.ps/str1 50 string def/str2 50 string def1234 5678 sub str1 cvscurrentfile str2 readlineHappy National Day pop str1 str2 copy100 100 moveto/Courier 40 selectfontstr2 showshowpage,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号