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、的线束属性值线有和一般属性确定对象剪取是否要应用于线对象若相关的为时用于确定要应用于线对象的有效剪取区域若属性值为确定绘制非实线型的线间隙的颜色规定辅助颜色的颜色选取方式确定绘制期间是将属性值解释为直接颜色值还是解释成索引颜色值确定是否使用属性值绘制断线型形状的间隙若属性为则图片的任何先前绘制部分不受线间隙的影响确定绘制的和光栅的对象如何与绘图表面已有的对象混合见的定义按的定义线的几何形状线宽由属性值确定属性值用线宽说明方式解释该属性可取或中的一个值若线宽说明方式为时将该宽度解释为依赖于设备的标定线宽乘以给定的属性值因此线宽不受任何变换的影响若线宽说明方式为该宽度以单位解释并受图段变换拷贝变换
27、和到设备映射的支配在空间中在线宽和线类型抽象绘制后才能应用这些变换和到设备映射线对象退化线对象的退化可由客户说明引起也可由无意地坐标数据变换的舍入误差引起若虚拟设备无法按照精确规定的线宽绘制线时则将使用最接近的实现宽度当按规定线宽时若线宽变换为设备坐标后小于最小比例线宽时则使用最小比例线宽如变换后的宽度大于最大比例线宽则使用最大比例线宽通常若线原语轨迹的抽象绘制退化到零维点集则至少应绘制一个点有几种可能使弧退化的方式当且仅当三个规定的点不共线点式圆弧或椭圆弧才是非退化的如果三点完全重合则绘制一个点若三点共线则圆弧的曲率为零由起点经中间点到终点绘制一条线若确定椭圆弧的三点共线则绘制一条依赖于实现
28、的直线用半径为零的圆弧只能绘制成一个圆点线剪取线对象剪取由属性控制其值可是和然而仅当相关的属性是才能应用对象剪取对于剪取在应用形状绘制应用前在线的数学轨迹与图形对象相关的有效剪取区域交集处对线的数学轨迹剪取因此部分线形状可能出现在有效剪取区域之外对于剪取在剪取的线形状与有效剪取区域交集处对绘制线的形状剪取即不绘制出有效剪取区域以外的部分对于剪取线的数学轨迹剪取与剪取相同随后再对剪取轨迹后的绘制形状剪取注意由于线的数学轨迹可能已由轨迹剪取来改变因此随后的形状绘制和剪取可产生一个不同于上述两种剪取方式的线外观允许的灵活虚拟设备有下列几种线型连续性再开始连续和其他由原语支持描述表中的线边型连续性能力
29、指明指示除最后的顶点外在每个线对象顶点重新开始线型图案指示除第一个顶点和最后一个顶点以外虚拟设备保持线型连续地穿过所有单个线对象的顶点指示使用别的方法例如保证某种连续性和画出线对象的每条线段的端点优先特性是记号原语记号功能提供了生成记号原语的单个记号功能在点表中规定的每个点上生成一个指定类型的符号记号属性记号原语的外观是由指定的记号属性和其他一般属性描述的确定绘制记号对象所用的记号类型即圆点加号或星号确定绘制期间将记号大小的属性值解释成比例因子还是大小见确定绘制记号对象的记号大小确定绘制记号对象的颜色规定记号颜色的颜色选取方式确定绘制期间是将属性值解释成直接颜色值还是索引颜色值如何定义颜色的描
30、述见确定绘制期间完成对象剪取的类型见当相应的记号值为时确定绘制期间使用的记号束下列记号属性值能成束和当相应的属性值为时确定绘制期间使用由属性指明的记号束属性值记号有及一般属性确定对象剪取是否要应用于记号对象若相关的为用于确定要应用于记号对象的有效剪取区域若属性值为记号形状用前景颜色记号的衬底用辅助颜色规定辅助颜色的颜色选取方式确定绘制期间将属性值解释成直接颜色值还是索引颜色值确定记号形状是否用前景颜色其他部分用辅助颜色若属性值为先前绘制图片的任何部分不受本记号对象的影响确定如何将绘制和光栅的对象与绘图表面上已有的对象混合在中定义在中定义记号几何形状把记号的轨迹定义为组成轨迹的每个点绘制与其轨迹
31、有关的记号按二维空间扩展即可得到它的形状由属性值确定记号大小应用二种说明方式或解释属性值若说明方式为将记号大小解释成标定的依赖于设备的记号大小乘以给定的记号大小属性值因此记号大小不受任何变换的影响若说明方式为记号大小按单位解释并受图段变换拷贝变换和到设备映射的影响记号形状决不受变换的影响如用作记号类型的圆点在绘制时总是以圆点出现可能只变换记号大小但记号类型圆点的情况除外可将记号大小的变换描述如下考虑变换以后的向量长度与变换前向量长度之比选择最大比值的向量得到的比是变换矩阵的欧氏范数并用该比值来缩放记号记号对象的退化记号对象的退化或由客户说明引起或由无意中变换坐标数据的舍入误差引起若虚拟设备不能
32、绘制一个精确规定大小的记号应使用最接近的有效大小记号剪取用属性控制记号对象剪取记号剪取方式值有或但仅当相关的属性值为时才进行对象剪取对于剪取应用形状绘制前在记号数学轨迹与图形对象相关的有效剪取区域相交处对记号的数学轨迹即定界点剪取因此可能有一部分记号形状出现在有效剪取区域之外若其定界点位于有效剪取区域之外则不绘制出记号的任何部分对于剪取在绘制记号形状与有效剪取区域不绘制有效区域之外部分相交处对已绘制的记号形状剪取尽管记号定位点在有效区域之外但还有部分记号符号出现在有效剪取区域之内对于剪取按方法剪取记号的数字轨迹为保证绘制的记号形状没有任何部分在有效剪取区域之外再对已绘制的记号形状按方法剪取正文
33、原语正文功能由简单或复合正文对象产生的正文显示一个复合正文对象是一个需要一些详细规定的正文原语组成的正文对象并作为单一对象对准和显示提供下列正文功能生成一个对准特定点的正文原语可生成一个复合正文对象生成一个对准特定点的并限制在由平行四边形规定的范围内的正文原语可生成一个复合正文对象生成一个将规定字符串附加到构造中的复合正文对象的正文原语正文功能的应用复合正文每个正文功能都有一个非结束结束旗标该旗标指明所生成的正文原语是否对复合正文对象的构造如开始延续结束有作用若一般属性和输出控制状态表的输出状态为当非结束结束旗标置为时调用或功能生成一个产生简单正文对象的正文原语而其外观由当前正文属性控制若输出
34、状态为当非结束结束旗标为时调用或功能将输出状态置于用已生成的正文原语开始构造复合正文对象然后功能将正文原语作用于复合正文对象最后当非结束结束旗标置成时功能就完成复合正文构造再将输出状态置回状态输出状态为时正文属性状态表一般属性和输出控制状态表的局部正文属性与不同的调用和功能生成的单个正文原语相关为完成该复合正文正文属性状态表的全局正文属性与正文对象相关通常由于正文对准和属性变化的方法影响正文范围平行四边形的定义所以在复合正文对象构造完毕后再进行绘制注意按功能指定的正文范围平行四边形不受任何属性变化的影响的应用按的定义被定义作正文原语的能使输出状态转移到或由转移到输出状态或生成复合正文对象在描述
35、中应明确地论述在状态下适用于的任何变化或特殊处理正文属性所有正文原语的外观都由特定的正文属性和其他一般属性描述局部正文属性下列属性是正文原语的局部属性即他们是与产生简单正文对象的正文原语相关也与用作复合正文对象构造的单独正文原语相关对正文对象确定沿着字符竖向量测定的字符体的高度见确定正文对象字符的宽高比见确定绘制时的正文对象字符间的间距见确定用于绘制正文字符串的字型见确定能在正文字符串范围内使用的增补字符集见确定用于正文字符串中字符的正常字符集见确定绘制正文对象的颜色规定正文颜色的颜色选取方式以确定绘制时是将属性值解释成直接颜色值还是索引颜色值如何定义颜色的描述见确定在任一正文属性值为时绘制所
36、用的正文束下列正文属性值能成束和当相应的属性值为时确定绘制期间由用的正文束属性值正文有全局正文属性下列属性是正文原语的全局属性与产生简单正文对象的正文原语相关也与作为整体的完整复合正文对象相关确定绘制时正文对象的字符竖向量和字符基向量见确定所要求的正文对象绘制质量确定正文字符串字符相对于字符方向的书写方向见确定正文范围平行四边形相对于正文位置的定位见确定字符串参数的解释和符合规定的转换字符集技术一般属性下面的属性与正文原语相关其中作为局部属性与正文原语相关和作为全局属性与正文原语相关确定对象剪取是否要应用于正文对象若相关的为用来确定要应用于正文对象的有效剪取区域若属性值为决定字符框内所用的颜色
37、它不同于字符字形的前景颜色规定辅助颜色的颜色选择方式确定绘制期间是将属性值解释为直接颜色值还是索引颜色值确定字符的字符框内所用的颜色它不同于字符字形的前景颜色若属性值是先前绘制图片的任何部分不受字符的这些部分的影响确定如何将绘制和光栅的对象与绘图表面上已有的对象混合见的定义见的定义正文几何形状字符框参考线如图所示字符框通常包含该字型里除字母核外的所有字符的绘图部分即没有低于底线的下降部分也没有高出顶线的重音符号或过大符号可以对每个字符确定字符框的左边线和右边线以适应可变宽度和比例间距字符框按需要应大于实际的字符宽度和高度以字符间垂直方向和水平方向有足够的空白间距注当相邻的字符框相互紧接时即当为
38、零时这保证了正文可读性并适当地分开在单向输出环境中使用继续值时可以生成多行正文而不引起垂直方向的重叠在某些情况下可将字型设计成便于字型的某些元素即杓和臂在水平方向上可以超出字符框然而功能仍然要求字符的所有可见部分限制在正文范围的平行四边形内字符大小和方向属性规定了沿字符竖向量所测量的字型帽线和基线之间距离见图和图注意若字符的竖向量不垂直于字符的基向量则垂直于基线测得的基线到顶线的距离小于字符高度属性值在字符框外貌不变的情况下属性也影响字符的宽度属性规定了字符宽高比与字型设计者所指定宽高比的偏差值见图图字符框参考线图字符高度和字符扩展因子属性规定在两个相邻字符框间应留有多大的附加间距若值为零字符
39、框沿仅有设计者设计的字内间距与另一个字符框紧靠排列若为正数则需将附加间距插入两个字符框间若为负数尽管两个字符自身并不重叠但两个相邻的字符框却是重叠的总之字符间距按的分数确定属性规定字符竖向量和基向量这些向量确定了字符的方向和倾斜也确定了和属性的见图和图虚拟设备在使用和显示正文之前总是要先使用已变换的基向量长度与已变换的竖向量长度之比以便换算出正文路径为和时的和各种情况下的正文路径有和四种可能的取值规定了正文字符串的书写方向见图和图表示字符基向量的方向表示与字符基向量成的方向表示字符竖向量的方向表示与字符竖向量成的方向图字符间距图字符方向图使用倾斜方向向量的字符高度和字符方向图单个正文对准当正文
40、路径为和时字符应让字符框的中心线定位在字符竖向量方向平行的直线上正文路径为和时字符应让字符的基线定位在字符基向量方向平行的直线上注由于的效果当为或时建议不要用倾斜字符方向向量来模拟倾斜字型或斜体字型通过在功能和后续的功能之间属性的改变将具有不同高度扩展因子或字型的字符混编在复合正文对象中时这些合成规则也是适用的正文对准当对准正文对象时正文对准是相对于与有关的正文范围平行四边形而言的正文对准是根据属性的当前状态和描述的合成规则通过连结字符串里的字符的字符框来获得正文范围平行四边形是边平行于字符方向向量的最小平行四边形并包含正文对象的所有字符框属性控制正文范围平行四边形相对于正文位置的定位见图的水
41、平对准类型有五个可能值及若水平对准类型为则正文范围平行四边形的左边穿过正文定位同样若该值为则正文范围平行四边形的右边穿过正文定位若水平对准类型是正文定位则处在平行于正文范围平行四边形的左边线和右边线间的中心线上在这种情况下若正文路径为或通过字符中心线的直线也穿过正文定位若水平对准类型为则正文定位位于平行于正文范围平行四边形端边的直线上以相对于正文范围平行四边形的左边线和右边线作相关定位并由连续水平对准参数确定对应于左边线值为对应于右边线值为允许负值和大于的值见图的垂直对准类型有七个可能的值和对于或垂直对准类型放置正文时应让正文字符串中的一个字符框相应参考线穿过正文定位对于不同的字符有不同情况不
42、明确之处按表表的规定处理表对准点的定义或距基线最远的顶线距基线最远的帽线距基线最远的半高线距基线最远的底线最左边字符框的最左边线最右边字符框的最右边线界于如上所定义的和之间的中线表对准点的定义或最上面字符的顶线最上面字符的帽线最上面字符和最下面字符半高线之间的中线最下面字符基线最下面字符的底线距中心线最远的左边线距中心线最远的右边线若垂直对准类型为正文定位位于平行于正文范围平行四边形顶线作相关定位并由连续垂直对准参数确定相应于底线的值为相应于顶线的值为允许负值和大于的值见图对于水平对准和垂直对准在精心构造正文对象时按上述规定处理将标定值变成当前正文路径的适当值如用第五章中正文对准功能描述所指出
43、的那样注意顶线与帽线底线与基线关系及半高线位置与字型有关所以正文范围平行四边形的各种定义线不一定由相同的字符框获得它是在一个字符串中可改变的的一个函数连续对准值允许显示多行正文并可保证一行字母下降部分和下一行字母上升部分不重合使用连续水平对准和连续垂直对准可为各种值提供这种能力因为单向输出环境中不能查询正文范围平行四边形大小所以要为相同正文定位的多行字符对准提供其他一些方法这意味着允许对准参数超过正文范围平行四边形的最大大小和字符间距类似连续参数也可以用来说明行间距见图正文对准正文路径正文对准正文路径正文对准正文路径正文对准正文路径正文对准正文路径正文对准正文路径正文位置图连续正文对准作为连续
44、对准属性集的例子要考虑四行左对齐正文的显示其中每行由单个功能规定为保证各行间的字母上升部分和下降部分不互相重合且在一行的字母下降部分与另一行上升的加重记号或过大字符间至少留有一个字符最大大小一半的间距功能应将水平对准类型和垂直对准类型置为并将连续垂直对准值置为此时当正文定位于字符串左下角时输出第一行随后可将连续垂直对准值设置到以相同的正文定位输出第二行因改变了对准故将第二行排在第一行下面最后二行按同样的方法输出连续垂直对准值分别设置为和而功能的正文定位参数不变对准值为时保证行间不互相重合对准值大于时保证留有附加间距当正文路径是时对准的用法与此类似与单个的正文对准属性值组合应用情况如图所示上述实
45、例已说明字符竖向量和字符基向量垂直情况即正文范围平行四边形是矩形当两个方向向量不垂直时正文范围平行四边形的边仍然平行于这两个方向向量中心线倾斜保持平行于正文范围平行四边形的左线和右线沿着倾斜边与基线不垂直测量正文范围平行四边形的高的值为字符基向量方向的值为字符基向量的反方向图使用倾斜方向向量的连续正文对准正文准确度正文属性在虚拟设备上实现的精确度应由正文准确度属性控制正文准确度有下列几种可能值正确地计算整个正文字符串的开始位置也要正确地计算正文字符串的拣取标识符和正文颜色其他正文属性的实现可不同于规定的实现正文范围平行四边形与有效剪取区域的边界相交的正文字符串的剪取依赖于实现如上所述绘制的正文
46、字符串的每个字符位置绘制的正文字符串的排列和方向均满足有关正文属性要求允许每个单独字符的倾斜方向和大小与相关正文属性所规定的参数有所不同所有完全位于有效剪取区域内或外的正文字符串的字符都应作适当的剪取字符框与有效剪取区域边界相交的字符剪取依赖于实现如上所述正文字符串的所有字符的排列倾斜方向和大小都应满足正文属性要求和剪取一样按虚拟设备的几何形状精确度对字符进行剪取在构造复合正文期间当正文准确度发生明显变化或者由正文束索引引起变化时应使用复合正文对象定义期间所用的最高正文准确度受限正文正文属性同样适用由功能形成的正文对象通常在单向输出环境中无法确定字符串的范围因此用功能规定了正文范围平行四边形的
47、大小若由当前正文属性显示一样的正文字符串超出由该参数导出的平行四边形则由和等正文属性用依赖于实现的方式加以调整使得在平行四边形内所规定的正文字符串的全部和显示字符串的范围都不会超出该平行四边形正文对象的退化正文对象的退化可由客户说明而引起也可由无意地在变换坐标数据时舍入误差而引起因此不许可为字符竖向量或字符基向量规定零长度向量另外因为这些向量的方向和长度比只影响绘制故在变换时实现应保持这些向量的比例以免舍入时无意中出现零长度或丢失准确度的现象若虚拟设备不能按精度定义的字符高度绘制正文对象则将使用稍低的有效的实现高度若没有这样的高度可利用则将使用稍高的有效的可用高度正文对准正文路径字符高度字符高
48、度增补字符串正文对准正文路径字符高度字符扩展因子字符扩展因子增补字符串正文位置图带增补正文和比例间距的单个正文对准正文剪取用于正文的剪取类型依赖于与正文图形对象有关的属性值属性取值如下对于准确度正文的剪取可按的方法对每个字符串逐个剪取对于准确度正文的剪取可按的方法对每个字符逐个剪取对于准确度正文剪取总是按方法进行注意是允许虚拟设备对所有正文准确度应用剪取正文字型和字符集字型利用功能可从有效字型中选一种字型即显示字符样式利用功能可获得将特定字型名赋给字型索引用作参数值在整个图片说明的不同时间内都可使用功能字型名表的改变是否影响任何绘制正文的外貌是由正文描述表的字型表的动态修改接受指明确定字型的选
49、择与字符集无关然而为显示有意义的正文字符串应与规定的字型和所用的字符集有关常用的以拉丁字为基础的字母表有罗马体和黑体字哥德体使用多个字符集有几种规定字符串含有不同字符集中的字符的方法用哪一种方法由功能决定缺省技术或正常方法使用功能且把正文字符串内容限制在打印字符和空格允许使用格式有效控制码如和但它们的解释依赖于实现按的规定功能的其他设置或功能的应用允许在正文字符串范围内对和控制码间的位字符应用标准化可用功能用于选择用作集和集的字符集集供编码表列的位字符和带控制码的位字符使用功能将特定字符集赋值给和索引参数在生成正文原语过程中应完成这些赋值且不受因调用功能而引起的任何变化的影响将这些编码扩展技术应用于正文功能字符串参数对于作为或功能数据记录一部分的字符串而言不管编码扩展技术是否应用在特殊的转义或中定义在正文打开状态下的差错不适用的功能在状态期间允许使用不直接适用于复合正文对象构造的属性和控制功能并对相应状态表项产生正常影响不适用的原语会引起一些差错且被忽略正文缓冲器的溢出在状态下溢出发生时生成单个差错但设备仍保持在状态除非生成附加差错忽略