椭圆填充图形的方法

文档序号:6414067阅读:941来源:国知局
专利名称:椭圆填充图形的方法
技术领域
本发明涉及一种椭圆填充图形地方法,尤其是涉及通过将预定的彩色数据写入到对应于在作为基本图形椭圆中的像素的存储器位置用单一彩色填充一个椭圆图形内部的方法。
通常图形显示用在广泛的领域,例如用于计算机的图形用户接口。当在这一领域中表示一个目标时,图形就分成点、线、三角形、矩形、圆和椭圆。尤其是圆和椭圆需要更多的处理时间。此外,用彩色填充圆和椭圆内部需要很多的时间。


图1示出了一种传统的圆的填充的方法。为了方便起见,假定图1的圆心是在一个坐标系统的原点(0,0)。首先,当着圆周被分成8份时,通过在一个时间把一个像素从一点(0,r)移到x等于y的一点,使用了公知的中点圆周的算法。在第一段八分圆线上从点(x,y)算出点(-x,y)、(y,x)、(-y,x)、(y,-x)、(-y,-x)、(x,-y)和(-x,-y)。然后,相对于y轴对称位置的点由直线彼此相连接,从而该圆被填充。就是说,每一对点(x,y)和(-x,y)、(y,x)和(-y,x)、(y,-x)和(-y,-x)、(x,-y)和(-x,-y)以直线彼此连接,从点(0.r)到x等于y的点重复操作这一过程。
一个椭圆的情况对应于一个圆的扩展。图2示出了一个椭圆的传统的填充的办法。该椭圆圆周被分成四个象限,以便利用椭圆的对称性。为了方便起见,假设图2中的椭圆原点是与图1中的情况一样是在点(0,0)。当椭圆的长轴是a而短轴是b时,则第一象限的圆周上的点(x,y)是通过在一个时间上从一个点(0,b)到一个点(a,0)的像素的移动获得的。从点(x,y)得到点(-x,y)、(x,-y)和(-x,-y)。其中的点(x,y)和(-x,y)以及点(x,-y)和(-x,-y)是通过直线彼此连接的。在点(0,b)和(a,0)之间重复这一过程。
但是在这种画出圆或椭圆的方法中,圆或椭圆中内部分别是通过画出2r和2b的直线填充的。这需要很多的处理时间。
本发明的目的是提供一种提高处理速度的椭圆填充图形的方法,借助于快速存储器数据块的复制和只在剩余的部分画出直线,对一个圆或椭圆内的矩形进行填充。
为了实现上述的目的,本发明提供了一种椭圆填充图形的方法,其中椭圆的内部是通过将颜色数据写入到由对应于在椭圆中的像素的地址表示的存储器位置而填充单一的颜色,该方法包括有步骤(a)选择包括在该椭圆中的一个矩形;(b)把彩色数据写入到由对应于在所选矩形的内部的像素地址指定的存储器的位置;和(c)把彩色数据写入到由对应于在该椭圆之内但在所选矩形之外的像素地址指定的存储器的位置。
通过结合附图对于本发明的最佳实施例的详细描述,本发明的目的和优点将变得显见。
图1示出传统的圆的填充图形的方法;
图2示出传统的椭圆的填充图形的方法;
图3示出表示根据本发明的一个椭圆填充图形方法的流程图;和
图4示出图3的椭圆填充的方法。
在图3中考虑了一个在一个椭圆之内的一个矩形,矩形的角(顶点)在该椭圆的圆周上。
在根据本发明的椭圆填充方法中,首先选择包括在该椭圆内部的一个矩形。彩色数据被写入到对应于在所选矩形之内的像素的存储器位置。随后,彩色数据写入到对应于在所选矩形区之外的椭圆的剩余部分的存储器位置,从而完成该椭圆的内部的填充。
参考图3,椭圆的填充方法包括下列的步骤(300)计算在椭圆圆周上的矩形的不同的顶点;(302)填充该矩形的内部;(304)计算椭圆的圆周;和(306)填充椭圆的剩余的部分。其中,一个圆对应于椭圆的一个特殊的区域,所以先讨论一个椭圆区。
首先在步骤300中计算和椭圆的圆周接触的矩形的顶点。根据存储器的二维矩阵的结构,该矩形能够通过同时地以相同值填充相邻存储器单元的预定的数目而被填充。所以,通过存储块的复制,内接矩形的分别的顶点被计算,以便将彩色数据同时地写入到对应于所有的矩形内部像素的存储器的位置。根据图4示出的椭圆,假设该椭圆是以公式表示,椭圆的长轴等于a而短轴等于b,而原点是(0,0)。则矩形顶点定义在点A,其切线对于该椭圆的此切线是在第一象限,并具有相交于该椭圆的斜率是-1。注意到X轴对应于该椭圆的主轴而Y轴对应于该椭圆的次轴。椭圆在第一象限的交点是。对于一个圆,这里
(x,y)和(x,-y)、(x,-y)和(-x,-y)的每一对被水平地彼此连接,并且彩色数据被写入到由对应于水平连接线的不同像素的地址指定的存储器的位置。以此方式,图4的部分402在其余的矩形之外的剩余部分中被填充。随着一个像素点(x,y)从点(a,0)在一个时刻增加到点(x,y)和(x,-y)、(-x,y)和(-x,-y)的每一对被垂直地彼此连接,并且彩色数据被写入到由对应于垂直连接线的不同像素的地址指定的存储器的位置。以此方式,图4的404部分被填充。
对于圆的情况也是一样,一个像素点(x,y)从点(0,r)在一个时刻增加到点并且由此在步骤304计算在圆周上的该点(x,y),该(x,y)和(-x,y)、(x,-y)和(-x,-y)的每一对被水平地彼此连接,并且在步骤306中彩色数据被写入到由对应于水平连接线的不同像素的地址指定的存储器的位置。该像素点(xy)从点(r,0)在一个时刻增加到点并且由此在步骤304计算在圆周上的该点(x,y)。点(x,y)和(x,-y)、(-x,y)和(-x,-y)的每一对被垂直地彼此连接,并且在步骤306中彩色数据被写入到由对应于垂直连接线的不同像素的地址指定的存储器的位置。
本发明涉及到采用给定的色彩对于属于基本图形是一个圆或椭圆的内部进行快速填充的方法。本方法广泛地用于图形加速器板/芯片和图形库。根据本发明的椭圆填充方法要求一个数据块的复制操作和的划线操作。就是说,与传统的划线操作相比减少。在一个圆周的情况下,由于a和b的值都是等于r,所以根据本发明的圆的填充方法需要一个数据块的复制操作和大约是1.2*r的划线操作。就是说,和传统的方法相比,划线操作的数目减少大约0.8r。所以,圆和椭圆被更快地填充。
权利要求
1.一种椭圆填充图形的方法,其中在椭圆的内部是通过将彩色数据写入到由对应于在该椭圆中的像素的地址表示的存储器位置而填充单一的颜色,所说的方法包括有步骤
(a)选择包括在该椭圆中的一个矩形;
(b)把彩色数据写入到由对应于在所选矩形内部的像素地址指定的存储器的位置;和
(c)把彩色数据写入到由对应于在该椭圆之内但在所选矩形之外的像素地址指定的存储器的位置。
2.根据权利要求1的椭圆填充图形的方法,其中,在步骤(a)中所说的矩形的顶点是在所说的椭圆的圆周上。
3.根据权利要求1的椭圆填充图形的方法,其中,在步骤(a)中所说的矩形的顶点是通过按照下列的次序选择的点而得到的;在所说的椭圆圆周上选一个点作为第一顶点,将相对于所说的椭圆的次轴和所说的第一顶点对称的点作为第二顶点,将相对于所说的椭圆的主轴和所说的第二顶点对称的点作为第三顶点,将相对于所说的椭圆的次轴和所说的第三顶点对称的点作为椭圆的第四顶点,并按次序将第一到第四顶点连接。
4.根据权利要求3的椭圆填充图形的方法,其中,所说的第一顶点是具有梯度为-1的切线和所说的椭圆相切的点。
5.一种椭圆填充图形的方法,其中在椭圆的内部是通过将彩色数据写入到由对应于在椭圆中的像素的地址表示的存储器位置而填充单一的颜色,所说的方法包括有步骤
(a)选择在所说的椭圆圆周上的一个点作为在椭圆之内的矩形的第一顶点,将相对于所说的椭圆的次轴和所说的第一顶点对称的点作为第二顶点,将相对于所说的椭圆的主轴和所说的第二顶点对称的点作为第三顶点,将相对于所说的椭圆的次轴和所说的第三顶点对称的点作为第四顶点;
(b)把彩色数据写入到由对应于通过步骤(a)的第一至第四顶点的连接形成的矩形内部的像素地址指定的存储器的位置;
(c)通过将一个像素在一时刻从所说的椭圆与次轴相交处移动到所说的第一顶点的同时,从所说的椭圆的圆周上选择一些点,把彩色数据写入到由对应于通过连接这些选择的点到相对于次轴而对称的其相对的不同点形成的直线上的像素的地址所指定的存储器的位置,以及把彩色数据写入到由对应于通过连接相对于主轴对称的分别的选择点到相对于次轴而对称的点形成的直线上的像素的地址所指定的存储器的位置;和
(d)通过将一个像素在一时刻从所说的椭圆与主轴相交处移动到所说的第一顶点的同时,从所说的椭圆的圆周上选择一些点,把彩色数据写入到由对应于通过连接这些选择的点到相对于主轴而对称的其相对的不同点形成的直线上的像素的地址所指定的存储器的位置,以及把彩色数据写入到由对应于通过连接相对于次轴对称的分别的选择点到相对于主轴而对称的点形成的直线上的像素的地址所指定的存储器的位置;
6.根据权利要求5的椭圆填充图形的方法,其中,所说的第一顶点是所说的椭圆和具有梯度为-1的所说的椭圆的一条切线的交点。
全文摘要
一种椭圆填充图形的方法,在椭圆的内部通过将彩色数据写入到由对应于在椭圆中的像素的地址表示的存储器位置而填充单一的颜色,该方法包括有步骤(a)选择包括在该椭圆中的一个矩形;(b)把彩色数据写入到由对应于在所选矩形的内部的像素地址指定的存储器的位置;和(c)把彩色数据写入到由对应于在该椭圆之内但在所选矩形之外的像素地址指定的存储器的位置。对于一个椭圆,相对于传统的操作,本填充方法要求的划线少了2a(a)行,而对于一个圆则少了0.8r行。
文档编号G06T11/40GK1205492SQ9810667
公开日1999年1月20日 申请日期1998年4月20日 优先权日1997年7月15日
发明者姜和锡, 成承基 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1