1、2022-8-91页面描述语言页面描述语言主讲:樊丽萍上海理工大学 出版印刷学院2022-8-92第三章第三章 页面图形的描述页面图形的描述 PostScriptPostScript图形操作符图形操作符:图形的描述图形的描述构造路径构造路径着色路径着色路径 图形状态操作符:定义的全局框架;图形状态操作符:定义的全局框架;坐标系和矩阵操作符:坐标转换(坐标系和矩阵操作符:坐标转换(CTMCTM)路径构造操作符:定义形状和轨迹的当前路径路径构造操作符:定义形状和轨迹的当前路径 着色操作符:对图形元素进行着色;着色操作符:对图形元素进行着色;字符和字库操作符:选择字符并着色字符;字符和字库操作符:选
2、择字符并着色字符;设备设置和输出操作符:建立对应关系设备设置和输出操作符:建立对应关系 2022-8-933.1 3.1 PSPS语言的成像模型语言的成像模型 通过把颜色(颜料)着色到页面某个指定的通过把颜色(颜料)着色到页面某个指定的区域来建立成像模型;区域来建立成像模型;1.1.基本成像理论基本成像理论着色区域着色区域:通过路径指定;(字母形状、线、图:通过路径指定;(字母形状、线、图 形、取样图像等)形、取样图像等)着色模型着色模型:由着色操作符产生的标记表示;:由着色操作符产生的标记表示;颜色(颜料)颜色(颜料):黑、白、灰度、彩色或图案等。:黑、白、灰度、彩色或图案等。2022-8-
3、942.2.当前页的特点:完全空白页当前页的特点:完全空白页(隐含隐含)(showpage)showpage)3.3.着色操作符:着色操作符:showpage showpage:输出并重新设置当前页;:输出并重新设置当前页;fill:fill:用当前色对当前路径围起的区域着色;用当前色对当前路径围起的区域着色;strokestroke:使用当前色沿当前路径画线;:使用当前色沿当前路径画线;imageimage:把取样图像输出到页面上:把取样图像输出到页面上 showshow:着色字符;格式:着色字符;格式:string showstring show2022-8-954.4.页面描述的基本步骤
4、页面描述的基本步骤 :使用路径构造操作符创建路径;使用路径构造操作符创建路径;设置图形状态参数设置图形状态参数 执行着色操作执行着色操作 使用输出操作符使用输出操作符 showpageshowpage;2022-8-96%!psps%new301.psnew301.ps/inch 72 mul def/inch 72 mul def 1 inch 1 inch moveto 1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 1 inch lineto7.5 inch 10 inch lineto7.5 inch 10 inch lineto
5、1 inch 10 inch lineto1 inch 10 inch linetoclosepathclosepath0.5 setgray fill0.5 setgray fillshowpageshowpage例例3.13.1:构造构造6.56.5*9 9英寸的矩形,英寸的矩形,0.50.5灰度填充,起灰度填充,起 点为(点为(1 1,1 1)英寸。)英寸。2022-8-973.2 3.2 图形状态(图形状态(GraphicsstateGraphicsstate)用于保存当前图形控制参数的数据结构用于保存当前图形控制参数的数据结构 1 1图形状态图形状态保 存 和保 存 和恢 复 图恢
6、复 图形状态形状态图 形图 形状 态状 态栈:栈:gsavegsave:把整个图形状态压入图像状态栈中保存:把整个图形状态压入图像状态栈中保存grestoregrestore:把整个图形状态从图像状态栈中弹出:把整个图形状态从图像状态栈中弹出 使其成为当前图形状态。使其成为当前图形状态。VMVMgstate:gstate:含有一个备份的图形状态,使用该操作含有一个备份的图形状态,使用该操作 符创建新的符创建新的gstategstate对象对象setgstatesetgstate:复制当前图形状态以代替:复制当前图形状态以代替gstategstate 对象的值对象的值2022-8-98例例3.2
7、3.2:继例继例3.13.1,并以,并以1 1英寸线宽描绘路径轮廓英寸线宽描绘路径轮廓%!ps%new302.ps%!ps%new302.ps/inch 72 mul def/inch 72 mul def1 inch 1 inch moveto 1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 1 inch lineto7.5 inch 10 inch lineto7.5 inch 10 inch lineto1 inch 10 inch lineto1 inch 10 inch linetoclosepathclosepathgsave
8、gsave0.5 setgray0.5 setgrayfillfillgrestoregrestore 1.0 inch setlinewidth1.0 inch setlinewidthstrokestrokeshowpageshowpage构造路径构造路径保存当前图形状态保存当前图形状态设置颜色空间并填充设置颜色空间并填充恢复保存的图形状态恢复保存的图形状态设置线宽、缺省颜色画线设置线宽、缺省颜色画线图形状态已改变图形状态已改变2022-8-99%!ps%!ps%new3021.ps%new3021.ps/inch 72 mul def/inch 72 mul def1 inch 1 in
9、ch moveto 1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 1 inch lineto7.5 inch 10 inch lineto7.5 inch 10 inch lineto1 inch 10 inch lineto1 inch 10 inch linetoclosepathclosepathgstate currentgstategstate currentgstate0.5 setgray0.5 setgrayfillfillsetgstatesetgstate 1.0 inch setlinewidth1.0 inch
10、setlinewidthstrokestrokeshowpageshowpage构造路径构造路径设置线宽、缺省颜色画线设置线宽、缺省颜色画线图形状态已改变图形状态已改变保存当前图形状态保存当前图形状态设置颜色空间并填充设置颜色空间并填充恢复保存的图形状态恢复保存的图形状态2022-8-9102.2.图形状态参数图形状态参数与设备无关的参数:用于页面的描述;与设备无关的参数:用于页面的描述;参数参数类型类型定义定义CTMCTM数组数组将用户坐标系转换为设备坐标系将用户坐标系转换为设备坐标系ColorSpaceColorSpace数组数组决定如何解释颜色值决定如何解释颜色值ColorColor多种
11、类型多种类型描述当前颜色的值。描述当前颜色的值。1414个值个值positionposition数值数值用户空间坐标系中的当前坐标用户空间坐标系中的当前坐标pathpath内部内部由路径操作符构造的当前路径由路径操作符构造的当前路径clippingpathclippingpath内部内部当义当前页面有效的成像区域当义当前页面有效的成像区域fontfont词典词典定义当前字库的图形形状(字符)定义当前字库的图形形状(字符)linewidthlinewidth数值数值定义画线宽度定义画线宽度linecaplinecap整型整型定义线端的端点形状定义线端的端点形状2022-8-911参数参数类型类型
12、定义定义linejoinlinejoin整型整型定义两条线段相接时接点的形状定义两条线段相接时接点的形状miterlimitmiterlimit数值数值两线段斜接时连接处的最大长度两线段斜接时连接处的最大长度dashpatterndashpattern不确定不确定定义画线时的虚线样式定义画线时的虚线样式strokeadjuststrokeadjust布尔布尔是否对线宽进行调整是否对线宽进行调整2022-8-912 用于控制还原处理过程的细节用于控制还原处理过程的细节 与设备有关的参数:与设备有关的参数:参数参数类型类型定义定义color renderingcolor rendering词典词典
13、CIE-basedCIE-based颜色转换的方法颜色转换的方法overprintoverprint布尔布尔 控制页面分色输出时的输出效果控制页面分色输出时的输出效果black generationblack generation过程过程计算颜色转换时的黑色分量值计算颜色转换时的黑色分量值Undercolor Undercolor removalremoval过程过程 计算计算CMYCMY减少的量以补偿由于黑减少的量以补偿由于黑版生成而增加的黑色分量的值版生成而增加的黑色分量的值transfertransfer过程过程校正特定设备的非线性效应校正特定设备的非线性效应halftonehalfto
14、ne多种多种规定应如何产生半色调网点规定应如何产生半色调网点flatnessflatness数值数值输出设备上曲线的还原精度输出设备上曲线的还原精度devicedevice内部内部当前输出设备的内部数据结构当前输出设备的内部数据结构2022-8-9133.3 3.3 坐标系和变换坐标系和变换 路径和形状在当前页上用笛卡儿坐标系中的点路径和形状在当前页上用笛卡儿坐标系中的点来定义来定义 1 1.用户空间和设备空间用户空间和设备空间 xy0(x,y)默认的用户空间:默认的用户空间:原点:输出页面左下角;原点:输出页面左下角;坐标轴方向:坐标轴方向:X X轴水平向右;轴水平向右;Y Y轴垂直向上;轴
15、垂直向上;单位长度:单位长度:1/721/72英寸英寸用户空间用户空间(user space)(user space):PS PS语言中所使用的坐标系,独立与设备空间语言中所使用的坐标系,独立与设备空间 2022-8-914设备空间设备空间(device space)(device space)输出设备使用的坐标系;输出设备使用的坐标系;2 2变换矩阵变换矩阵 CTM CTM(Coordinate Transform MatrixCoordinate Transform Matrix):):定义了从用户空间到设备空间的坐标转换。定义了从用户空间到设备空间的坐标转换。(x,yx,y)(x x,y
16、,y)zztdybxytcyaxxyx100)()(yxttdcbazyxzyx2022-8-915100:yxttdcbaCTMyxttdcba单位矩阵单位矩阵:1 0 0 1 0 0:1 0 0 1 0 0 2022-8-916缩放:若方程表示为:缩放:若方程表示为:平移:若方程表示为:平移:若方程表示为:yxtyytxx(x,yx,y)(x x,y,y)的平移量为的平移量为),(yxttyxtt1001变换矩阵为:变换矩阵为:ysdyyxsaxxyx0000yxss变换矩阵为:变换矩阵为:2022-8-917旋转:若方程表示为旋转:若方程表示为:cossinsincosyxyyxx00c
17、ossinsincos变换矩阵为:变换矩阵为:坐标轴绕原点逆时针方向旋转坐标轴绕原点逆时针方向旋转角角 用户空间用户空间 设备空间设备空间 新新CTM=CTM=变换矩阵旧变换矩阵旧CTMCTM2022-8-9183 3坐标变换操作符坐标变换操作符 translatetranslate:把用户空间的坐标原点平移到(把用户空间的坐标原点平移到(t tx x,t,ty y),不不改变坐标轴的单位与方向。改变坐标轴的单位与方向。格式:格式:t tx x t ty y translate translate or tor tx x t ty y matrix translate matrix trans
18、latematrixmatrix2022-8-919 rotate:rotate:把坐标轴绕当前用户空间的原点旋转一个角度把坐标轴绕当前用户空间的原点旋转一个角度,它不改变坐标轴的单位,它不改变坐标轴的单位 格式:格式:angle rotate angle rotate or angleor angle matrix rotate matrix rotate matrixmatrixangle0angle0,作逆时针旋转;,作逆时针旋转;angle0angle=0num=0)线的端点形态线的端点形态 格式:格式:int setlinecap int setlinecap 其中其中 int=0i
19、nt=0、1 1、2 2;int=1 int=1;端点处是一个端点处是一个直径为线宽的半直径为线宽的半圆,并用当前色圆,并用当前色填充填充 int=2 int=2;端点处伸长端点处伸长半个线宽的距半个线宽的距离,然后呈正离,然后呈正方形轮廓方形轮廓 int=0 int=0;笔划在路径的笔划在路径的端点处呈正方形端点处呈正方形,没有超出路径,没有超出路径端点的投影端点的投影2022-8-948线段的相交形状线段的相交形状 格式:格式:int setlinejoin int setlinejoin 其中其中 int=0int=0、1 1、2 2;int=0 int=0;两个线段笔划的两个线段笔划的
20、外边向外延伸,直外边向外延伸,直到两个外边相交成到两个外边相交成一个角度。若相交一个角度。若相交角度很小,就用平角度很小,就用平头斜接替代它头斜接替代它 int=1 int=1:在两个线段的在两个线段的连接处是一个直连接处是一个直径为线宽的圆弧径为线宽的圆弧,用当前色填,用当前色填充该圆弧。充该圆弧。int=2 int=2:相接的路相接的路径用平头来径用平头来结束结束,平头宽平头宽为线的宽度为线的宽度.2022-8-949线型线型 格式:格式:array offset setdasharray offset setdash若若arrayarray为空,则为空,则strokestroke产生一段
21、实线;产生一段实线;若若arrayarray不空,则不空,则strokestroke产生一段虚线;产生一段虚线;arrayarray:中的元素依次解释为沿着路径的距离,:中的元素依次解释为沿着路径的距离,这些距离交替定义虚线的长度以及两条这些距离交替定义虚线的长度以及两条 虚线之间的间隔。虚线之间的间隔。offsetoffset:可以认为是相对于路径开始点的线型:可以认为是相对于路径开始点的线型 的的“相位相位”(phasephase);它被解释为进入);它被解释为进入 线型的距离,从这点开始应该按线型线型的距离,从这点开始应该按线型 来绘制一个路径。来绘制一个路径。2022-8-950 0
22、0 setdash :setdash :表示构造一实线表示构造一实线3 0 3 0 setdashsetdash:以:以3 3为间隔的虚线为间隔的虚线52 1 2 1 setdashsetdash:以:以2 2为间隔的虚线为间隔的虚线3 5 6 3 5 6 setdashsetdash:以:以5 5为间隔的虚线为间隔的虚线 2022-8-951例例3 310 10 写出下列程序的运行结果写出下列程序的运行结果%!ps%new310.ps/inch 72 muldef2 inch 2 inch moveto4 inch 0 rlineto0 4 inch rlineto-4 inch 0 inc
23、h rlinetoclosepath10 setlinewidth2 setlinejoingsave stroke grestoregsave1 setlinecap0.7 setgray20 0 setdashstroke grestoreshowpage2022-8-952 由黑色和灰由黑色和灰色线段构成的色线段构成的边长为边长为4 4英寸的英寸的,四边相交为,四边相交为平头斜接,其平头斜接,其中灰色线段(中灰色线段(灰度值灰度值0.70.7)的)的端头为圆头,端头为圆头,黑灰相间为黑灰相间为3030:1010;线宽为;线宽为1010的正方形的正方形 (2,2)单位:英寸单位:英寸202
24、2-8-9532022-8-9542.2.填充路径:填充路径:内点判断规则内点判断规则 :非零环绕计数规则(非零环绕计数规则(fill fill)(non-zero winding number rule)non-zero winding number rule)先任意指定一点,然后从该点向任意方向画一先任意指定一点,然后从该点向任意方向画一条射线到无穷远处,并检查路径段与射线交点,条射线到无穷远处,并检查路径段与射线交点,从从0 0开始计数,如果路径段从左到右穿过射线,开始计数,如果路径段从左到右穿过射线,计数器加计数器加1 1;否则,如果路径段从右到左穿过射;否则,如果路径段从右到左穿过射
25、线,计数器减线,计数器减1 1。在对所有交点计数后,。在对所有交点计数后,若结果若结果为为0 0,则该点在路径之外;若结果为非,则该点在路径之外;若结果为非0 0,则该,则该点在路径内部。点在路径内部。2022-8-955同向同向异向异向2022-8-956奇偶规则(奇偶规则(even-old ruleeven-old rule)(eofill)(eofill)从任意点出发,沿任意方向画一条射线,然后从任意点出发,沿任意方向画一条射线,然后计算该路径与射线的交点数目,若交点数为奇数计算该路径与射线的交点数目,若交点数为奇数,则点为该路径的内点;若交点数为偶数,则该,则点为该路径的内点;若交点数
26、为偶数,则该点不属于路径的内点,不会被填充。点不属于路径的内点,不会被填充。2022-8-957例例3 311 11 构造内圆半径为构造内圆半径为2 2、外圆半径为、外圆半径为3 3的黑色圆环的黑色圆环%!ps%new311.ps72 72 scale4 4 translate0 0 3 0 360 arcfill 1 setgray0 0 2 0 360 arcfill showpage2022-8-958%!ps%new3112.ps72 72 scale4 4 translate0 0 2 0 360 arc0 0 3 0 360 arceofill showpage%!ps%new31
27、11.ps72 72 scale4 4 translate0 0 2 0 360 arc0 0 3 360 0 arcnfill showpage2022-8-9593.3.快速图形的生成方式快速图形的生成方式 rectfillrectfill:填充由操作数描述的由一个或多个矩形构造填充由操作数描述的由一个或多个矩形构造的路径。的路径。格式:格式:x y width height rectfillx y width height rectfill numarray rectfillnumarray rectfill numstring rectfill numstring rectfill 无
28、论操作数是正是负,无论操作数是正是负,PSPS解释器总是以逆时针解释器总是以逆时针方向画出矩形方向画出矩形,若有相交若有相交,按非零环绕原则填充。按非零环绕原则填充。矩形的起点坐标会根据矩形的起点坐标会根据widthwidth和和heightheight变化。变化。2022-8-960rectstrokerectstroke:对操作数描述的由一个或多个矩形构造的路径对操作数描述的由一个或多个矩形构造的路径进行描绘。进行描绘。格式:格式:x y width height rectstrokex y width height rectstroke numarray rectstrokenumarr
29、ay rectstroke numstring rectstrokenumstring rectstroke 特点:特点:同时完成路径的创建和着色;同时完成路径的创建和着色;对当前路径不产生影响对当前路径不产生影响 2022-8-961%!ps%new312.ps72 72 scale0.125 setlinewidth 1 1 3.5 2 5.5 1 2 4 4.5 8 3 2 1 5 2 5 rectstrokeshowpage例例3.123.12写出下列程序结果写出下列程序结果?-2022-8-9623.6 3.6 裁剪路径的使用裁剪路径的使用裁剪路径:定义成像区域的边界裁剪路径:定义成
30、像区域的边界1.clip1.clip操作符操作符 裁剪路径操作符将当前路径和当前裁剪路径裁剪路径操作符将当前路径和当前裁剪路径按某种填充原则求其交集。定义成像区域边界。按某种填充原则求其交集。定义成像区域边界。将当前开放路径处理为封闭路径,不改变路径将当前开放路径处理为封闭路径,不改变路径 本身;本身;允许当前路径是空的;允许当前路径是空的;当前路径不变当前路径不变 根据非零环绕规则把所有位于这两个路径内根据非零环绕规则把所有位于这两个路径内部的区域设置为新的裁剪路径。部的区域设置为新的裁剪路径。2022-8-963例例3 313 13 写出下列程序运行结果写出下列程序运行结果%!ps%new
31、313.ps/inch 72 mul def/ellipse 0 0 1 inch 0 360 arcdef4.25 inch 5.5 inch translate2 1 scale0.1 inch setlinewidthellipse clipstroke0.5 2 scale ellipsefillshowpage2022-8-9642.eoclip2.eoclip操作符操作符 eoclip eoclip操作符使当前裁剪路径的内部与当前路操作符使当前裁剪路径的内部与当前路径的内部相交从而产生一个新的裁剪路径;径的内部相交从而产生一个新的裁剪路径;当前当前路径的内部由奇偶规则决定路径的内部
32、由奇偶规则决定,而当前裁剪路径的,而当前裁剪路径的内部则根据建立路径时使用的规则决定。内部则根据建立路径时使用的规则决定。2022-8-9653 inch 3 inch 0 2 inch 1 inchDrawEllipse 3 inch 3 inch 45 2.5 inch 1 inch 4.5 inch 4.5 inch moveto DrawEllipseeoclip fillshowpage例例3.143.14:写出下列程序结果写出下列程序结果%!ps%new314.ps /inch 72 muldef/DrawEllipse/CTMSave matrix currentmatrix d
33、ef5 3 roll translate3 2 roll rotate scale0 0 1 0 360 arcclosepathCTMSave setmatrix def?作用?作用?2022-8-9666.5 7 moveto40 rotate2 0 rlineto0 3 rlineto-2 0 rlinetoclosepathgsave0.5 setgrayfillgrestore0.25 setlinewidthstrokeshowpage%!ps%new315.ps72 72 scale 3.75 6 2 0 360 arcclosepath0.5 0.5 moveto2 0 rli
34、neto0 3 rlineto-2 0 rlinetoclosepath例例3.153.15(P79)P79)2022-8-967 路径不一定路径不一定是连接的,可以是连接的,可以由几个分离的子由几个分离的子路径构成;路径构成;但一但一定要注意设置新定要注意设置新的当前点。的当前点。2022-8-96815-1 inch moveto0-1 inch 15 0 360 arc15 1 inch moveto0 1 inch 15 0 360 arceofill0 0 2 inch 270 90 arc stroke showpage%!ps%new316.ps/inch 72 muldef3
35、inch 3 inch translate0 0 2 inch 90 270 arc0-1 inch 1 inch-90 90 arc0 1 inch 1 inch 270 90 arcn例例3.163.16(P80)(P80)2022-8-9692022-8-9702 2问:问:2 2 scale2 2 scale前移一前移一行对图形影响行对图形影响;3 3问:修改为问:修改为2 1 scale?2 1 scale?习题习题%exce301.psexce301.ps/square square newpath 0 0 moveto newpath 0 0 moveto 90 0 lineto
36、 90 90 lineto 90 0 lineto 90 90 lineto 0 90 lineto closepath fill def 0 90 lineto closepath fill def 300 300 translate 300 300 translate 60 rotate 60 rotate 100 100 translate 100 100 translate 2 2 scale 2 2 scale square square showpage showpage 1 1写出下列程序的运行结果写出下列程序的运行结果1 1问:增加问:增加matrixmatrix后对图形的影响
37、后对图形的影响(3 0 3 0 100 100)2022-8-971%!ps%exce302.ps /circle newpath 0 0 2 0 90 arc 0 0 1 90 0 arcn closepath def gsave 72 72 scale 2 2 translate circle fill 4 0 translate 90 rotate circle fill showpage问:将问:将grestoregrestore移移到此处对图形有何到此处对图形有何影响?为什么?影响?为什么?grestoregrestore2022-8-972%exce303.ps /inch 72
38、muldef/DrawEllipse/CTMSave matrix currentmatrix def5 3 roll translate3 2 roll rotate scale0 0 1 0 360 arcclosepathCTMSave setmatrix def4 inch 4 inch 0 3 inch 1 inchDrawEllipse stroke4 inch 4 inch 60 3 inch 1 inch DrawEllipse stroke4 inch 4 inch 120 3 inch 1 inchDrawEllipse strokeshowpage2022-8-973%!
39、ps%exce304.ps /rectangle 0 0 moveto 4 0 lineto 4 2 lineto 0 2 lineto closepathdef 72 72 scale 2 2 translate rectangle3-1 translate90 rotaterectangleeoclip fillshowpage2022-8-974line closepath10 setlinewidth1 setlinejoingsavestrokegrestore 20 10 0 setdash 0.5 setgraystrokeCTMSave setmatrix4 inch h in
40、ch r inch 0 360 arc fillshowpage%!ps%exce305.ps/inch72 mul def/CTMSave matrix currentmatrix def/h 3 sqrt 1 add def/r h 1 sub def/line 6 inch 0 lineto6 inch 0 translate def1 inch 1 inch translate 0 0 moveto line120 rotate2022-8-9752.2.编写程序。编写程序。构造边长为构造边长为200200,锐角,锐角45450 0的平行四边形,当的平行四边形,当 前色填充前色填充,起
41、点(起点(100100,100100)。)。构造角度为构造角度为30300 0,短半轴为,短半轴为100100,长半轴为,长半轴为200200 ,圆心坐标(,圆心坐标(200200,200200)的椭圆,线宽)的椭圆,线宽1010 当前色描边。当前色描边。构造如图:小三角形尺寸:高构造如图:小三角形尺寸:高2 2、宽宽1 1;大三角形:底;大三角形:底4 4、高、高4 4;8 8磅线宽描边。单位:英寸。磅线宽描边。单位:英寸。起点:(起点:(2 2,2 2)英寸)英寸2022-8-976构造如图(构造如图(exce309)exce309)边长为边长为2 2英寸的等边三角形外接圆英寸的等边三角形
42、外接圆(3,3)2022-8-977构造长半轴为构造长半轴为3 3英寸。短半轴为英寸。短半轴为1 1英寸的椭圆英寸的椭圆,椭圆中心点为(,椭圆中心点为(4 4 英寸英寸 4 4英寸)倾斜角度为英寸)倾斜角度为-1201200 0,线宽为,线宽为1010P P,虚线描边,其中灰色线段(,虚线描边,其中灰色线段(灰度值灰度值0.70.7)的端头为平头,黑灰相间为:)的端头为平头,黑灰相间为:1515:8 8;内部为灰度值;内部为灰度值0.40.4的灰色填充。的灰色填充。2022-8-978%!ps%st001.ps/box newpath 0 0 moveto 0 1 lineto 1 1 lin
43、eto 1 0 lineto closepath defgsave 45 2 2 2 2 72 72 aload pop scale box fill translate box fill translate rotatebox fill grestore showpage2022-8-979%!ps%kexce3001.ps/rectangle newpath0 0 moveto 4 0 rlineto0 2 rlineto -4 0 rlineto closepathdef /triangle newpath0 0 moveto 4 0 lineto2 2 lineto closepath
44、 def72 72 scale 2 2 translate rectangle0.05 setlinewidth stroketriangle fillshowpage2022-8-980%!ps%kexce3002.ps/inch 72 mul def/rectangle newpath0 0 moveto 4 inch 0 rlineto0 2 inch rlineto-4 inch 0 rlinetoclosepathdef/triangle newpath0 0 moveto 2 inch 0 lineto0 4 inch linetoclosepath def4 Inch 4 inch translate gsave 45 rotate rectangle fillgrestore45 rotatetriangle fillshowpage2022-8-981%!ps%exce307.ps72 72 scale2 2 translate0 0 moveto0 3 3 3 1 arct4 3 4 0 1 arct4 -1 1 -1 1 arct0 -1 0 2 1 arctclosepath1 setlinewidthstroke showpage例例3.173.17