[互联网]{BA31A039-9AB5-45F6-B194-0B19E7512A3A}第3章页面图形的描述课件_第1页
[互联网]{BA31A039-9AB5-45F6-B194-0B19E7512A3A}第3章页面图形的描述课件_第2页
[互联网]{BA31A039-9AB5-45F6-B194-0B19E7512A3A}第3章页面图形的描述课件_第3页
[互联网]{BA31A039-9AB5-45F6-B194-0B19E7512A3A}第3章页面图形的描述课件_第4页
[互联网]{BA31A039-9AB5-45F6-B194-0B19E7512A3A}第3章页面图形的描述课件_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022/7/231页面描述语言主讲:樊丽萍上海理工大学 出版印刷学院2022/7/232第三章 页面图形的描述 PostScript图形操作符 :图形的描述构造路径着色路径 图形状态操作符:定义的全局框架; 坐标系和矩阵操作符:坐标转换(CTM) 路径构造操作符:定义形状和轨迹的当前路径 着色操作符:对图形元素进行着色; 字符和字库操作符:选择字符并着色字符; 设备设置和输出操作符:建立对应关系 2022/7/2333.1 PS语言的成像模型 通过把颜色(颜料)着色到页面某个指定的区域来建立成像模型; 1.基本成像理论着色区域:通过路径指定;(字母形状、线、图 形、取样图像等)着色模型:由着

2、色操作符产生的标记表示;颜色(颜料):黑、白、灰度、彩色或图案等。2022/7/2342.当前页的特点:完全空白页(隐含) (showpage) 3.着色操作符: showpage:输出并重新设置当前页; fill:用当前色对当前路径围起的区域着色; stroke:使用当前色沿当前路径画线; image:把取样图像输出到页面上 show:着色字符;格式:string show2022/7/2354.页面描述的基本步骤 : 使用路径构造操作符创建路径;设置图形状态参数 执行着色操作 使用输出操作符 showpage; 2022/7/236%!ps%new301.ps/inch 72 mul de

3、f 1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 10 inch lineto1 inch 10 inch linetoclosepath0.5 setgray fillshowpage例3.1:构造6.5*9英寸的矩形,0.5灰度填充,起 点为(1,1)英寸。2022/7/2373.2 图形状态(Graphicsstate) 用于保存当前图形控制参数的数据结构 1图形状态保存和恢复图形状态图形状态栈:gsave:把整个图形状态压入图像状态栈中保存grestore:把整个图形状态从图像状态栈中弹出 使其成为当前图形状态。VMgstate

4、:含有一个备份的图形状态,使用该操作 符创建新的gstate对象setgstate:复制当前图形状态以代替gstate 对象的值2022/7/238例3.2:继例3.1,并以1英寸线宽描绘路径轮廓%!ps %new302.ps/inch 72 mul def1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 10 inch lineto1 inch 10 inch linetoclosepathgsave0.5 setgrayfillgrestore 1.0 inch setlinewidthstrokeshowpage构造路径保存当前图形状

5、态设置颜色空间并填充恢复保存的图形状态设置线宽、缺省颜色画线图形状态已改变2022/7/239%!ps%new3021.ps/inch 72 mul def1 inch 1 inch moveto 7.5 inch 1 inch lineto7.5 inch 10 inch lineto1 inch 10 inch linetoclosepathgstate currentgstate0.5 setgrayfillsetgstate 1.0 inch setlinewidthstrokeshowpage构造路径设置线宽、缺省颜色画线图形状态已改变保存当前图形状态设置颜色空间并填充恢复保存的图形

6、状态2022/7/23102. 图形状态参数与设备无关的参数:用于页面的描述; 参数类型定义CTM数组将用户坐标系转换为设备坐标系ColorSpace数组决定如何解释颜色值Color多种类型描述当前颜色的值。14个值position数值用户空间坐标系中的当前坐标path内部由路径操作符构造的当前路径clippingpath内部当义当前页面有效的成像区域font词典定义当前字库的图形形状(字符)linewidth数值定义画线宽度linecap整型定义线端的端点形状2022/7/2311参数类型定义linejoin整型定义两条线段相接时接点的形状miterlimit数值两线段斜接时连接处的最大长度

7、dashpattern不确定定义画线时的虚线样式strokeadjust布尔是否对线宽进行调整2022/7/2312 用于控制还原处理过程的细节 与设备有关的参数: 参数类型定义color rendering词典CIE-based颜色转换的方法overprint布尔控制页面分色输出时的输出效果black generation过程计算颜色转换时的黑色分量值Undercolor removal过程计算CMY减少的量以补偿由于黑版生成而增加的黑色分量的值transfer过程校正特定设备的非线性效应halftone多种规定应如何产生半色调网点flatness数值输出设备上曲线的还原精度device内部

8、当前输出设备的内部数据结构2022/7/23133.3 坐标系和变换 路径和形状在当前页上用笛卡儿坐标系中的点来定义 1.用户空间和设备空间 xy0(x, y)默认的用户空间:原点:输出页面左下角;坐标轴方向:X轴水平向右; Y轴垂直向上;单位长度:1/72英寸用户空间(user space): PS语言中所使用的坐标系,独立与设备空间 2022/7/2314设备空间(device space) 输出设备使用的坐标系; 2变换矩阵 CTM(Coordinate Transform Matrix): 定义了从用户空间到设备空间的坐标转换。 (x,y) (x,y) 2022/7/2315单位矩阵:

9、1 0 0 1 0 0 2022/7/2316缩放:若方程表示为: 平移:若方程表示为: (x,y) (x,y)的平移量为变换矩阵为: 变换矩阵为: 2022/7/2317旋转:若方程表示为:变换矩阵为: 坐标轴绕原点逆时针方向旋转角 用户空间 设备空间 新CTM=变换矩阵旧CTM2022/7/23183坐标变换操作符 translate: 把用户空间的坐标原点平移到(tx ,ty),不改变坐标轴的单位与方向。格式:tx ty translate or tx ty matrix translatematrix2022/7/2319 rotate : 把坐标轴绕当前用户空间的原点旋转一个角度,它

10、不改变坐标轴的单位 格式:angle rotate or angle matrix rotate matrixangle0,作逆时针旋转;angle= 0)线的端点形态 格式:int setlinecap 其中 int = 0、1、2; int = 1; 端点处是一个直径为线宽的半圆,并用当前色填充 int = 2; 端点处伸长半个线宽的距离,然后呈正方形轮廓 int = 0; 笔划在路径的端点处呈正方形,没有超出路径端点的投影2022/7/2348线段的相交形状 格式:int setlinejoin 其中 int = 0、1、2; int = 0; 两个线段笔划的外边向外延伸,直到两个外边相

11、交成一个角度。若相交角度很小,就用平头斜接替代它 int = 1: 在两个线段的连接处是一个直径为线宽的圆弧,用当前色填充该圆弧。 int = 2: 相接的路径用平头来结束,平头宽为线的宽度. 2022/7/2349线型 格式:array offset setdash若array为空,则stroke产生一段实线;若array不空,则stroke产生一段虚线; array:中的元素依次解释为沿着路径的距离, 这些距离交替定义虚线的长度以及两条 虚线之间的间隔。 offset:可以认为是相对于路径开始点的线型 的“相位”(phase);它被解释为进入 线型的距离,从这点开始应该按线型 来绘制一个路

12、径。 2022/7/2350 0 setdash :表示构造一实线3 0 setdash:以3为间隔的虚线52 1 setdash:以2为间隔的虚线3 5 6 setdash:以5为间隔的虚线 2022/7/2351例310 写出下列程序的运行结果%!ps%new310.ps/inch 72 muldef2 inch 2 inch moveto4 inch 0 rlineto0 4 inch rlineto-4 inch 0 inch rlinetoclosepath10 setlinewidth2 setlinejoingsave stroke grestoregsave1 setlinec

13、ap0.7 setgray20 0 setdashstroke grestoreshowpage2022/7/2352 由黑色和灰色线段构成的边长为4英寸的,四边相交为平头斜接,其中灰色线段(灰度值0.7)的端头为圆头,黑灰相间为30:10;线宽为10的正方形 (2,2)单位:英寸2022/7/23532022/7/23542.填充路径:内点判断规则 :非零环绕计数规则(fill ) (non-zero winding number rule) 先任意指定一点,然后从该点向任意方向画一条射线到无穷远处,并检查路径段与射线交点,从0开始计数,如果路径段从左到右穿过射线,计数器加1;否则,如果路径

14、段从右到左穿过射线,计数器减1。在对所有交点计数后,若结果为0,则该点在路径之外;若结果为非0,则该点在路径内部。 2022/7/2355同向异向2022/7/2356奇偶规则(even-old rule)(eofill) 从任意点出发,沿任意方向画一条射线,然后计算该路径与射线的交点数目,若交点数为奇数,则点为该路径的内点;若交点数为偶数,则该点不属于路径的内点,不会被填充。 2022/7/2357例311 构造内圆半径为2、外圆半径为3的黑色圆环 %file311.ps72 72 scale4 4 translate0 0 2 0 360 arc0 0 3 360 0 arcnfill s

15、howpage72 72 scale0 0 3 0 360 arcfill 1 setgray0 0 2 0 360 arcfill showpage%file311.ps4 4 translate%!ps%new311.ps72 72 scale4 4 translate0 0 3 0 360 arcfill 1 setgray0 0 2 0 360 arcfill showpage2022/7/2358%!ps%new3112.ps72 72 scale4 4 translate0 0 2 0 360 arc0 0 3 0 360 arceofill showpage%!ps%new311

16、1.ps72 72 scale4 4 translate0 0 2 0 360 arc0 0 3 360 0 arcnfill showpage2022/7/23593.快速图形的生成方式 rectfill: 填充由操作数描述的由一个或多个矩形构造的路径。 格式:x y width height rectfill numarray rectfill numstring rectfill 无论操作数是正是负,PS解释器总是以逆时针方向画出矩形,若有相交,按非零环绕原则填充。 矩形的起点坐标会根据width和height变化。2022/7/2360rectstroke: 对操作数描述的由一个或多个

17、矩形构造的路径进行描绘。 格式:x y width height rectstroke numarray rectstroke numstring rectstroke 特点: 同时完成路径的创建和着色;对当前路径不产生影响 2022/7/2361%!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.12写出下列程序结果?-2022/7/23623.6 裁剪路径的使用裁剪路径:定义成像区域的边界1.clip操作符 裁剪路径操作符将当前路径和当前

18、裁剪路径按某种填充原则求其交集。定义成像区域边界。将当前开放路径处理为封闭路径,不改变路径 本身;允许当前路径是空的;当前路径不变 根据非零环绕规则把所有位于这两个路径内部的区域设置为新的裁剪路径。2022/7/2363例313 写出下列程序运行结果 %!ps% new313.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

19、/7/23642.eoclip操作符 eoclip操作符使当前裁剪路径的内部与当前路径的内部相交从而产生一个新的裁剪路径;当前路径的内部由奇偶规则决定,而当前裁剪路径的内部则根据建立路径时使用的规则决定。2022/7/23653 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.14:写出下列程序结果%!ps%new314.ps /inch 72 muldef /DrawEllipse

20、/CTMSave matrix currentmatrix def5 3 roll translate3 2 roll rotate scale0 0 1 0 360 arcclosepathCTMSave setmatrix def?作用?2022/7/23666.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 arcc

21、losepath0.5 0.5 moveto2 0 rlineto0 3 rlineto-2 0 rlinetoclosepath例3.15(P79)2022/7/2367 路径不一定是连接的,可以由几个分离的子路径构成;但一定要注意设置新的当前点。2022/7/236815 -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 inch 3 inch tr

22、anslate0 0 2 inch 90 270 arc0 -1 inch 1 inch -90 90 arc0 1 inch 1 inch 270 90 arcn例3.16(P80)2022/7/23692022/7/23702问:2 2 scale前移一行对图形影响;3问:修改为2 1 scale?习题 %exce301.ps/square newpath 0 0 moveto 90 0 lineto 90 90 lineto 0 90 lineto closepath fill def 300 300 translate 60 rotate 100 100 translate 2 2 s

23、cale square showpage 1写出下列程序的运行结果1问:增加matrix后对图形的影响(3 0 3 0 100 100 )2022/7/2371%!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问:将grestore移到此处对图形有何影响?为什么?grestoregrestore2022/7/2372

24、%exce303.ps /inch 72 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 str

25、okeshowpage2022/7/2373 %!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/7/2374line closepath10 setlinewidth1 setlinejoingsavestrokegrestore 20 10 0 setdash 0.5 setgraystroke

26、CTMSave setmatrix4 inch h inch 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/7/23752.编写程序。构造边长为200,锐角450的平行四边形,当 前色填充,起点(100,100)。构造角度为300,短半轴为100,长半轴为200 ,圆心坐标(200,200)的椭圆,线宽10 当前色描边。构造如图:小三角形尺寸:高2、 宽1;大三角形:底4、高4; 8磅线宽描边。单位:英寸。 起点:(2,2)英寸2022/7/2376构造如图(exce309) 边长为2英寸的等边三角形外接圆(3,3)2022/7/2377构造长半轴为3英寸。短半轴为1英寸的椭圆,椭圆中心点为(4 英寸 4英寸)倾斜角度为-1200,线宽为10P,虚线描边,其中灰色线段(灰度值0.7)的端头为平头,黑灰相间为:15:8;内部为灰度值0.4的灰色填充。 2022/7/2378

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论