一种在计算机屏幕上显示图形的新方法

文档序号:6421344阅读:430来源:国知局
专利名称:一种在计算机屏幕上显示图形的新方法
技术领域
本发明属于计算机图形设计领域,具体涉及一种在计算机屏幕上显示图形的新方法。
背景技术
使用计算机系统进行图形设计时,设计出的图形要在计算机屏幕上显示出来,供设计者检查并进行修改,因此,图形的显示效果对设计过程有重要影响。由于光栅图形显示器的特性,用计算机显示图形时会出现走样现象,即部分线条会呈现锯齿状。已有文献中公开了许多反走样方法来减少或消除这种失真效果。这些技术可以分为两类其中一类基于提高分辨率即增加采样点;另一类是把象素作为一个有限区域,对区域采样。具体可参见文献“计算机图形学”(孙家广等著,北京清华大学出版社,1994)。
根据图形绘制中是否采用反走样技术,图形数据的屏幕显示可分为两种模式普通显示和精细显示。普通显示不进行反走样处理,精细显示则进行反走样处理。由于消除了锯齿,精细显示的效果更为逼真精确,但是反走样同时也增加了处理时间,导致精细显示的速度比普通显示慢。这种速度和精度的差异对于某些特定图形会表现得非常明显。
现有的图形设计软件在用计算机屏幕进行图形显示时都是采用单一模式进行图形显示,即要么采用普通显示(如北大方正电子有限公司的超线防伪设计系统),要么采用精细显示(如美国Adobe公司的Illustrator)。这种图形的显示方式对于安全底纹等一些复杂的图形设计活动是不适合的。随着防伪要求的提高,安全底纹已经发展得越来越复杂精细,表现在图形数据量大,包含非常多的线条,同时线条的宽度和间距非常细微。对于这类复杂图形,采用普通显示不能如实反映设计效果,而精细显示对于大数据量图形的速度较慢,无法使设计者得到及时响应。可见两种单一模式的图形显示都存在一些不足。

发明内容
针对现有技术中存在的缺陷,本发明的目的是提出一种在计算机屏幕上显示图形的新方法,这种方法在计算机屏幕上能得到普通效果和精细效果共存的图形显示,在性能上能兼顾显示速度和精确程度两方面的要求,既能消除图形的走样现象,又能保证显示的速度,同时又具有一定的灵活性,从而进一步提高图形设计的工作效率。
为达到以上目的,本发明采用的技术方案是一种在计算机屏幕上显示图形的新方法,包括以下步骤(1)首先将要显示的整个图形使用普通方式在计算机屏幕上显示出来,作为底图;(2)然后根据需要在底图上选定一个或多个区域,对落在该区域中的图形部分进行反走样处理,形成该选定区域的精细图形;(3)将该选定区域的精细图形叠加到底图上被选定的相应位置,作为最终的显示效果。
为了具有更好的效果,步骤(2)中所选定的区域可以是一个和/或多个圆形、矩形、多边形、椭圆形或其组合。步骤(3)中被选定区域的精细图形与底图的叠加可以采用内存位图的方法叠加。
本发明的效果在于一、通过本发明的技术方案,可以得到普通效果和精细效果共存的图形显示。在屏幕上,部分图形区域经过反走样方法绘制,呈现精细效果;而其余部分不做反走样处理,呈现普通效果。二、本发明所述方法能够兼顾显示速度和精确程度的要求。一方面,被选中部分以高精度方式显示,另一方面,由于精细显示一般只涉及部分图形数据,因此速度不会太慢。三、本发明所述方法具有灵活性,表现在操作者能够根据需要选择精细显示的部分。四、本发明所述方法适用于机械、电子、建筑、安全底纹、包装等各类图形设计领域,对于图形复杂、数据量大的设计场合效果更好。本发明实现简单,能够方便地应用到计算机图形设计软件中并大大提高了图形设计的工作效率。
本发明之所以具有以上效果,主要是因为本发明采用一种普通显示和精细显示相结合的模式,结合了两种现有技术的优点。在显示出来的图形中,被选定的部分区域呈现精细效果,为精细显示,其余末被选定的部分呈现普通效果,为普通显示。缺省显示方式为普通显示,需要精细显示的区域可以由操作者自由指定,如不指定,则整个图形均为普通效果。
现有的单一显示方式包含于本发明所述方法中,可视为其特例。如不指定精细显示区域,则本发明所述方法退化为单一的普通显示方式;如指定整个图形区域为精细显示区域,则本发明所述方法退化为单一的精细显示方式。


图1是一个线条复杂、数据量大的安全底纹图形的精细显示效果图;图2是该安全底纹图形的普通显示效果图;图3是该安全底纹图形采用本发明方法显示的包含一个精细显示区域的效果图;图4是该安全底纹图形采用本发明方法显示的包含两个精细显示区域效果图;图5是本发明所述方法的流程图。
具体实施例方式
下面结合附图对本发明的具体实施方式
做进一步的描述。
图1是一个安全底纹图形的精细显示效果图,图2是同样图形在相同显示比例下的普通显示效果,可见图1的精确程度优于图2。然而在显示速度上,图1明显不如图2。在同样的机器条件(CPU为Pentium III,内存为256M,操作系统为中文Windows 2000)下进行试验,图1完全显示出来需要将近3秒,而图2则在1秒之内完成显示。
图3是采用本发明方法显示的一个安全底纹图形的实际效果。从图中可见,该图形1是通过普通显示和精细显示相结合的方法显示出来,其中蝴蝶图案3为精细效果,而其余部分2为普通效果。如图5所示,该实施例的实现过程为一种在计算机屏幕上显示图形的新方法,包括以下步骤(1)通过普通显示的方法将整个图形1显示在屏幕上,作为底图;(2)按下鼠标左键,同时在屏幕上移动鼠标,拉出一个选择框。该选择框的边界在屏幕上显示出来。待其框住欲精细显示的区域时,松开鼠标左键,此时被选定的矩形区域3即为精细显示区域;遍历各个图形元素,对落在精细显示区域中的线条进行反走样处理,将结果写入一个内存位图中;(3)将(2)中得到的位图叠加到(1)中所得底图上的相应位置,即得到图3的显示效果。
本实施例步骤(1)中,采用文献“计算机图形学”(孙家广等著,北京清华大学出版社,1994)第四章中介绍的Bresenham算法绘制线、圆和椭圆,完成图形的普通显示。Bresenham算法是本领域技术人员都熟悉的基本算法,在此不再详述。
本实施例步骤(2)中,对选定区域进行反走样处理所采用的方法是文献“基于NPR的数字雕刻技术研究”(亓文法著,北京大学硕士学位论文,2003)中提出的基于矢量图形的反走样算法。其基本原理是线条每向主轴方向(理想直线沿该轴投影较长)前进1个象素单位时,则沿从轴方向在该线条两侧各绘制1个象素点。每个点都以绘制颜色的亮度乘以权值w作为实际填充颜色。W的取值满足以下公式w+d=1,其中d为该象素在从轴方向上与理想直线的距离。
步骤(3)中将精细图形叠加到底图上所采用的方法是内存位图法。该方法通过调用Windows操作系统的图形设备接口(GDIGraphical DeviceInterface)函数来实现。具体步骤为(1)调用GDI函数CreateCompatibleDC创建一个与当前屏幕设备上下文(DCDevice Context)ScreenDC兼容的内存DC,记为MemDC;(2)调用GDI函数CreateCompatibleBitmap创建一个内存位图Bmp,并通过GDI函数SelectObject将其选入MemDC中;(3)接下来在此内存位图上按照步骤(2)中描述的方法进行反走样绘制,完成绘制后内存位图中的内容即为精细图形;最后调用GDI函数BitBlt将该内存位图贴到屏幕DC上的相应位置,以此达到叠加的效果。以上过程通过阅读文献“Programming Windows”(Charles Petzold著,SeattleMicrosoft Press,1996)可以不难得出。
本实施例只是一个优选的实施方式。本领域技术人员不难得出其他的实施方法而不违背本发明的总体思想。
其中,选择精细显示区域除了采用上述的鼠标拖拉的方法,还可以采用对话框输入的方法。即弹出一个对话框,操作者在其中输入数值来确定精细显示区域的位置。
其中,精细显示区域通常为矩形,但也可以为其他形状,如圆形、椭圆形、扇形、多边形等。精细显示区域通常只有一个,但也可以为多个,以便对图形的多个区域查看精细效果。如图4所示,其中2个区域为精细效果,包括一个菱形区域4和一个矩形区域5。
其中,精细显示中图形反走样算法可以有不同的实现方式。比如(1)盒式滤波器取样法。基本原理是计算象素与线条部分的面积来选择不同的灰度值。(2)加权区域取样算法。此法由Gupta和Sproull于1981年提出,基本原理是采用锥形滤波器进行取样,使接近理想直线的象素被分配更多的灰度值,同时相邻两个象素的滤波器相交,所以直线条经过该相交区域时,将对这两个象素都分配给适当的灰度值。以上算法在文献“计算机图形学”(孙家广等著,北京清华大学出版社,1994)第四章中有详细介绍。
其中,精细显示部分与底图的结合除了上述的内存位图的方法,也可以采用其他可行的技术。例如采用临时图像文件的方法。具体步骤为(1)创建一个图像文件,其格式采用BMP/JPEG/TIFF等常用图像格式,初始时图像为空;(2)进行反走样处理,将精细图形结果存入该文件中;(3)叠加时只要在底图的相应位置将该图像文件显示出来即可。如何显示BMP/JPEG/TIFF等常用格式的图像可参见文献“图形图像文件格式大全”(David Kay等著,柏东译,北京学苑出版社,1994);(4)显示完成后再将该文件删除。由于此法涉及外部文件的存取,因此从执行速度上比内存位图的方法慢。
通过本实施例,可以看出本发明在用计算机进行图形设计时所具有很好的效果,不仅能同时得到普通效果和精细效果共存的图形显示,而且还明显提高了图形设计的速度,从而大大提高了图形设计的工作效率。
权利要求
1.一种在计算机屏幕上显示图形的新方法,包括以下步骤(1)首先将要显示的整个图形使用普通方式在计算机屏幕上显示出来,作为底图;(2)然后根据需要在底图上选定一个或多个区域,对落在该区域中的图形部分进行反走样处理,形成该选定区域的精细图形;(3)将该选定区域的精细图形叠加到底图上被选定的相应位置,作为最终的显示效果。
2.如权利要求1所述的一种在计算机屏幕上显示图形的新方法,其特征是步骤(2)中所选定的区域可以是一个和/或多个圆形、矩形、多边形、椭圆形或其组合。
3.如权利要求1所述的一种在计算机屏幕上显示图形的新方法,其特征是步骤(3)中被选定区域的精细图形与底图的叠加可以采用内存位图的方法叠加。
全文摘要
本发明涉及一种在计算机屏幕上显示图形的新方法。现有的图形设计软件都是采用单一模式进行图形显示,即要么采用普通显示,要么采用精细显示。这种图形的显示方式对于安全底纹等一些复杂的图形设计活动是不适合的。本发明所述的方法是将两种图形显示方法相结合,底图采用普通显示,然后选定要精细显示的部分区域,对该区域进行反走样处理后叠加到原来的底图上。采用本发明所述的方法,能在计算机屏幕上能得到普通效果和精细效果共存的图形显示,在性能上能兼顾显示速度和精确程度两方面的要求,既能消除图形的走样现象,又能保证显示的速度,同时又具有一定的灵活性,从而进一步提高图形设计的工作效率。
文档编号G06T5/00GK1555027SQ20031012347
公开日2004年12月15日 申请日期2003年12月29日 优先权日2003年12月29日
发明者张海东, 亓文法 申请人:北京北大方正电子有限公司, 北京大学计算机科学技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1