CN1108589C - 填充椭圆图形的方法 - Google Patents
填充椭圆图形的方法 Download PDFInfo
- Publication number
- CN1108589C CN1108589C CN98106671A CN98106671A CN1108589C CN 1108589 C CN1108589 C CN 1108589C CN 98106671 A CN98106671 A CN 98106671A CN 98106671 A CN98106671 A CN 98106671A CN 1108589 C CN1108589 C CN 1108589C
- Authority
- CN
- China
- Prior art keywords
- ellipse
- summit
- pixel
- written
- color data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
一种填充椭圆图形的方法,在椭圆的内部通过将彩色数据写入到由对应于在椭圆中的像素的地址表示的存储器位置而填充单一的颜色,该方法包括有步骤(a)选择包括在该椭圆中的一个矩形;(b)把彩色数据写入到由对应于在所选矩形的内部的像素地址指定的存储器的位置;和(c)把彩色数据写入到由对应于在该椭圆之内但在所选矩形之外的像素地址指定的存储器的位置。对于一个椭圆,相对于传统的操作,本填充方法要求的划线少了2()行,而对于一个圆则少了0.8r行。
Description
技术领域
本发明涉及一种填充椭圆图形的方法,尤其是涉及通过将预定的彩色数据写入到对应于在作为基本图形椭圆中的像素的存储器位置用单一彩色填充一个椭圆图形内部的方法。
背景技术
通常图形显示用在广泛的领域,例如用于计算机的图形用户接口。当在这一领域中表示一个目标时,图形就分成点、线、三角形、矩形、圆和椭圆。尤其是圆和椭圆需要更多的处理时间。此外,用彩色填充圆和椭圆内部需要很多的时间。
图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轴对应于该椭圆的次轴。椭圆在第一象限的交点是
对于一个圆,这里的a和b的值都是r(r是圆的半径),所以一个圆的交点是
当顶点A确定时,顶点
和 与顶点A相对称地确定在第二、第三和第四象限中。对于圆,对应的顶点是
和
由于上述在步骤302中的存储器数据块的复制,上述顶点确定的矩形能够被快速地填充。
随着一个像素点(x,y)从点(0,b)在一个时刻增加到点 (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)从点(0,r)在一个时刻增加到点
并且由此在步骤304计算在圆周上的该点(x,y)。点(x,y)和(x,-y)、(-x,y)和(-x,-y)的每一对被垂直地彼此连接,并且在步骤306中彩色数据被写入到由对应于垂直连接线的不同像素的地址指定的存储器的位置。
本发明涉及到采用给定的色彩对于属于基本图形是一个圆或椭圆的内部进行快速填充的方法。本方法广泛地用于图形加速器板/芯片和图形库。
根据本发明的填充椭圆方法要求一个数据块的复制操作和 的划线操作。就是说,与传统的划线操作相比减少
在一个圆周的情况下,由于a和b的值都是等于r,所以根据本发明的圆的填充方法需要一个数据块的复制操作和大约是1.2*r的划线操作。就是说,和传统的方法相比,划线操作的数目减少大约0.8r。所以,圆和椭圆被更快地填充。
Claims (6)
1.一种填充椭圆图形的方法,其中在椭圆的内部是通过将彩色数据写入到由对应于在该椭圆中的像素的地址表示的存储器位置而填充单一的颜色,所说的方法包括有步骤:
(a)选择包括在该椭圆中的一个矩形;
(b)通过快速存储器复制,把彩色数据写入到由对应于在所选矩形内部的像素地址指定的存储器的位置;和
(c)通过画线,把彩色数据写入到由对应于在该椭圆之内但在所选矩形之外的像素地址指定的存储器的位置。
2.根据权利要求1的填充椭圆图形的方法,其中,在步骤(a)中所说的矩形的顶点是在所说的椭圆的圆周上。
3.根据权利要求1的填充椭圆图形的方法,其中,在步骤(a)中所说的矩形的顶点是通过按照下列的次序选择的点而得到的;在所说的椭圆圆周上选一个点作为第一顶点,将相对于所说的椭圆的次轴和所说的第一顶点对称的点作为第二顶点,将相对于所说的椭圆的主轴和所说的第二顶点对称的点作为第三顶点,将相对于所说的椭圆的次轴和所说的第三顶点对称的点作为椭圆的第四顶点,并按次序将第一到第四顶点连接。
4.根据权利要求3的填充椭圆图形的方法,其中,所说的第一顶点是具有斜率为-1的切线和所说的椭圆相切的点。
5.一种填充椭圆图形的方法,其中在椭圆的内部是通过将彩色数据写入到由对应于在椭圆中的像素的地址表示的存储器位置而填充单一的颜色,所说的方法包括有步骤:
(a)选择在所说的椭圆圆周上的一个点作为在椭圆之内的矩形的第一顶点,将相对于所说的椭圆的次轴和所说的第一顶点对称的点作为第二顶点,将相对于所说的椭圆的主轴和所说的第二顶点对称的点作为第三顶点,将相对于所说的椭圆的次轴和所说的第三顶点对称的点作为第四顶点;
(b)通过快速存储器复制,把彩色数据写入到由对应于通过步骤(a)的第一至第四顶点的连接形成的矩形内部的像素地址指定的存储器的位置;
(c)通过将一个像素在一时刻从所说的椭圆与次轴相交处移动到所说的第一顶点的同时,从所说的椭圆的圆周上选择一些点,把彩色数据写入到由对应于这样的直线上的像素的地址所指定的存储器位置:所述直线是连接所选择的点、到它们关于次轴的各自对称点而形成的线,以及把彩色数据写入到由对应于这样的直线上的像素的地址所指定的存储器位置:所述直线是连接所述各自所选择的点关于主轴的对称点、到这些对称点关于次轴的对称点而形成的线;和
(d)通过将一个像素在一时刻从所说的椭圆与主轴相交处移动到所说的第一顶点的同时,从所说的椭圆的圆周上选择一些点,把彩色数据写入到由对应于这样的直线上的像素的地址所指定的存储器位置:所述直线是连接所选择的点、到它们关于所述椭圆的主轴的各自对称点而形成的线,以及把彩色数据写入到由对应于这样的直线上的像素的地址所指定的存储器位置:所述直线是连接所述各自所选择的点关于次轴的对称点、到这些对称点关于主轴的对称点而形成的线。
6.根据权利要求5的填充椭圆图形的方法,其中,所说的第一顶点是所说的椭圆和具有斜率为-1的所说的椭圆的一条切线的交点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR32938/1997 | 1997-07-15 | ||
KR1019970032938A KR100243224B1 (ko) | 1997-07-15 | 1997-07-15 | 그래픽에서 타원 메꿈방법 |
KR32938/97 | 1997-07-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1205492A CN1205492A (zh) | 1999-01-20 |
CN1108589C true CN1108589C (zh) | 2003-05-14 |
Family
ID=19514590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98106671A Expired - Fee Related CN1108589C (zh) | 1997-07-15 | 1998-04-20 | 填充椭圆图形的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6226014B1 (zh) |
JP (1) | JP2977155B2 (zh) |
KR (1) | KR100243224B1 (zh) |
CN (1) | CN1108589C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6011271B2 (ja) * | 2012-01-17 | 2016-10-19 | 株式会社リコー | 情報処理装置、システム、情報処理方法、プログラム、記憶媒体 |
US9465835B2 (en) * | 2012-06-25 | 2016-10-11 | Sap Se | Columnwise spatial aggregation |
CN104809752B (zh) * | 2015-04-20 | 2016-02-24 | 广东工业大学 | 一种非规则区域的矩形块填充方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958300A (en) * | 1987-10-21 | 1990-09-18 | Daikin Industries, Ltd. | Polygon filling control apparatus |
JPH0683971A (ja) * | 1992-06-11 | 1994-03-25 | Nec Corp | 図形表示装置 |
EP0644509A2 (en) * | 1993-09-20 | 1995-03-22 | International Business Machines Corporation | Method and apparatus for filling polygons |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6272078A (ja) | 1985-09-25 | 1987-04-02 | Casio Comput Co Ltd | 円内塗りつぶし描画装置 |
-
1997
- 1997-07-15 KR KR1019970032938A patent/KR100243224B1/ko not_active IP Right Cessation
-
1998
- 1998-04-20 CN CN98106671A patent/CN1108589C/zh not_active Expired - Fee Related
- 1998-04-30 US US09/069,976 patent/US6226014B1/en not_active Expired - Fee Related
- 1998-05-27 JP JP10146086A patent/JP2977155B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958300A (en) * | 1987-10-21 | 1990-09-18 | Daikin Industries, Ltd. | Polygon filling control apparatus |
JPH0683971A (ja) * | 1992-06-11 | 1994-03-25 | Nec Corp | 図形表示装置 |
EP0644509A2 (en) * | 1993-09-20 | 1995-03-22 | International Business Machines Corporation | Method and apparatus for filling polygons |
Also Published As
Publication number | Publication date |
---|---|
CN1205492A (zh) | 1999-01-20 |
KR100243224B1 (ko) | 2000-02-01 |
JP2977155B2 (ja) | 1999-11-10 |
JPH1139498A (ja) | 1999-02-12 |
KR19990010240A (ko) | 1999-02-05 |
US6226014B1 (en) | 2001-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0356103B1 (en) | Scan-conversion process and processor | |
US5461712A (en) | Quadrant-based two-dimensional memory manager | |
EP0218984A2 (en) | Computer graphics processing apparatus and method | |
US5739826A (en) | Polygon display based on x coordinates of edges on scan line | |
US5068802A (en) | Graphic drawing method and system with input coordinates automatically adjustable | |
CN1702734B (zh) | 当对应轮廓缺少控制点时对图形对象的适当呈现 | |
US5321805A (en) | Raster graphics engine for producing graphics on a display | |
CN1108589C (zh) | 填充椭圆图形的方法 | |
EP0881598B1 (en) | Method for filling a polygon and image processing system | |
CN1130666C (zh) | 图形涂抹装置 | |
US6473091B1 (en) | Image processing apparatus and method | |
US5929865A (en) | Method of sorting two-dimensional graphic images for converting into raster lines | |
CN110807113B (zh) | 可视化布局中的矩形图元重叠的非迭代消除方法 | |
EP0199160B1 (en) | Method for generating a circular or elliptic arc | |
US5670981A (en) | Method for mapping a source pixel image to a destination pixel space | |
EP0817128A2 (en) | Method and apparatus for drawing polygons | |
US6803918B1 (en) | Image processing apparatus | |
US20030117404A1 (en) | Image processing apparatus | |
EP0817127B1 (en) | Memory mapping method and apparatus | |
JP2861044B2 (ja) | 図形処理装置 | |
JPS6052472B2 (ja) | 領域情報処理装置 | |
US5798763A (en) | Object referenced memory segmentation | |
KR930005777B1 (ko) | 도형 처리장치 | |
JPS61138375A (ja) | 図形情報処理装置 | |
JPH0350686A (ja) | 図形処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030514 |