Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.


  1. Advanced Patent Search
Publication numberUS5420970 A
Publication typeGrant
Application numberUS 08/192,935
Publication dateMay 30, 1995
Filing dateFeb 7, 1994
Priority dateMar 13, 1991
Fee statusPaid
Publication number08192935, 192935, US 5420970 A, US 5420970A, US-A-5420970, US5420970 A, US5420970A
InventorsWalter R. Steiner, Steven V. Manno, Oscar G. Vela
Original AssigneeMartin Marietta Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method for determining computer image generation display pixels occupied by a circular feature
US 5420970 A
A method for determining whether a particular cell of an array of display cells, either of full pixels or subpixel portions, is interior or exterior to a circular feature of non-zero radius, uses a line segment length L measured from the vertical feature diameter to the feature periphery, along a point of each row of cells to be considered. For that cell row, all cells within L cells of the vertical diameter line are within the feature; the number of cells on each row changes as the row position changes with respect to the centroid.
Previous page
Next page
What is claimed is:
1. A method for illuminating pixels of at least a portion of a scene raster, displayable by a computerized image generator, as part of a plurality of raster line cells covered by a circular feature to be displayed, comprising the steps of;
(a) providing data storage means and data processing means in the computerized image generator;
(b) providing, to the processing means from the storage means, a set of electronic data signals specifying both a centroid location P and a radius length R of the circular feature;
(c) causing the processing means to determine, using a first radial component of the feature in a direction substantially perpendicular to a common scan direction of the raster, a maximum line range to include those raster lines encompassing the feature to opposite sides of the feature centroid in the direction of the first radial component, and within a maximum distance set by the feature radius;
(d) for each line of raster cells within the determined range, then generating within the processing means another electronic data signal determining a length of a segment of each of the plurality of raster cell lines, with each segment extending from a feature radial line to an edge of the feature in that cell line, along which lie cells which will be present in the scene to be displayed, by the substeps of: generating, from the feature centroid data signal, for each identified cell line, an electronic data signal specifying an offset distance ΔI from that cell line to a cell line including the feature centroid; generating a line segment distance L data signal dependent upon the offset distance data signal; and utilizing the data signals to determine specification data signals specifying start and stop parameters of the data signals specifying the range of sells along each identified cell line segment;
(e) generating raster line segment length output data signals using pixel information obtained responsive to the electronic data signals for all cells determined in step (c);
(f) causing the processor means to generate display scene data signals using in part the line segment data signals obtained in step (d); and
(g) displaying each display scene responsive to the generated display video data signals.
2. The method of claim 1, wherein the line segment distance L data signal is generated from L=Rh (1-(ΔI/Rv)2)178, is a first radius data signal and Rh is a data signal for another radius in a direction substantially perpendicular to the first radius.
3. The method of claim 2, wherein the cell lines are the rows of a cell array, and the start and stop parameters are columns of that array.
4. The method of claim 3, wherein the start column is L columns prior to the array column in which the centroid is located.
5. The method of claim 4, wherein the stop column is L columns after to the array column in which the centroid is located.
6. The method of claim 3, wherein the data signals for all cells with a column number between the start and stop column numbers for that cell row, are included in the feature data signal set used in step (e).
7. The method of claim 6, further including the step of storing a list set of the data signals for all cells included in any visible circular feature.
8. The method of claim 7, further including the step of storing the list of included cells by row number.

This application is a Continuation of application Ser. No. 07/699,017, filed Mar. 13, 1991, now abandoned.


The present invention relates to computer image generation (CIG) and, more specifically, to a method for determining the portion of a computer-image-generated display which is occupied by a circular feature.


Those skilled in the computer-image-generation arts are well acquainted with the method of rendering a computer-generated image by dividing a display screen into pixels, and possibly further dividing each pixel into subpixels, before determining which of the pixels (and subpixels) lie inside each of the polygon surfaces to be shown on the display screen. The pixels/subpixels which lie inside the surface are subsequently assigned a color based upon the attributes of the surface to be displayed. Thus, those skilled in the art well know the methods for predetermination of inclusion or exclusion of a particular pixel/subpixel in a polygonal surface of the image. It is somewhat more difficult to determine which pixels/subpixels of a display screen are occupied by a portion of a feature, where a such a display circular feature is not only defined by its centroid (center position) and a color attribute, but also has a non-zero radius. While the centroid describes the X, Y, Z position of the feature center in the display environment, the radius describes the size of the feature. It is well known to transform, project and scale the centroid position to determine the I, J position (where I is the vertical-direction image screen coordinate position and J is the horizontal-direction image screen coordinate position). However, methods have hitherto been unavailable in this art for transforming the non-zero circular feature radius and for determining whether a pixel/subpixel is interior to the feature. It is therefore highly desirable to provide a method for determining the radial extent and inclusion/exclusion of a pixel/subpixel of a CIG display portion within a circular feature.


In accordance with the invention, a method for determining whether a particular cell of an array of display cells, whether the cells are full pixels or subpixel portions, is interior or exterior to a circular point feature of non-zero radius, uses a line segment length L, measured from the vertical feature diameter to the feature periphery, along a midpoint of each row of cells to be considered. For that cell row, all cells within L cells of the vertical diameter line are within the feature; the number of cells on each row changes as the row position changes with respect to the feature centroid. A comparison of a normalized vertical distance to the feature radius yields a parameter which is input to a look-up table to determine the extent of cells to be included in each row with that vertical distance from the centroid.

In a presently preferred embodiment, provision is made for elliptical features, to calculate distorted "circular" point features.

Accordingly, it is an object of the present invention to provide a novel method for determining whether a cell, in a display of a CIG system, is within a circular feature.

This and other objects of the present invention will become apparent to those skilled in the art upon reading the following detailed description of a presently preferred embodiment of the invention, when considered in conjunction with the associated drawings.


FIG. 1 is a plan view of a portion of a CIG display screen, illustrating the pixels/subpixel cells included within a surface polygon;

FIG. 2 is a plan view of a portion of a CIG display screen, illustrating the pixels/subpixels cells included within a circular feature, in accordance with the principles of the present invention; and

FIG. 3 is a schematic block diagram of a portion of apparatus for determining whether a pixel/subpixel cell is exterior or interior to a circular surface.


Referring initially to FIG. 1, a portion 10 of a CIG system display screen includes a number of cells 11 of a computer-image-generated video display. Each of the cells 11 may be a display pixel, or may be one of a number of subpixels of a display pixel, as required by the particular CIG system of which the display is a part. For purposes of illustration only, the illustrated display portion 10 may be a subspan comprised of four horizontal pixels by four vertical pixels (having boundaries shown by the heavier lines) with each pixel comprised of a 44 array of subpixels. It will be understood that: the number of subpixels in each pixel is purely arbitrary; there may be no subpixels in each pixel; and a 16 subpixel/pixel array (especially in a square format) is shown here only for explanational purposes. A polygon 14 (which may generally be a scalene triangle and the like) is defined by its vertices 14V1-14V3, its edges 14E1-14E3 therebetween, and its color attributes. It is well known to those skilled in the art to find the subpixels 14S which lie within polygon 14 and to transform, project, scale and perform the like operations upon the included subpixels (here shown with heavier outline and a subpixel center dot). Typically, the included subpixels 14S may have an image screen coordinated position defined by a first parameter I in the vertical screen direction and by a second parameter J in the horizonal screen direction. For example, the image-generating computer may be used to determine whether more than 50 percent of the area of each subpixel is occupied by a portion of the polygon 14, for inclusion of that subpixel within polygon 14. This procedure typically requires a relatively lengthy series of calculations, based upon the vertices of each edge of the polygon.

Referring now to FIG. 2, in accordance with one aspect of the present invention, a circular surface feature 16, placed upon a display screen portion 10' (comprised of pixels, which may be each further comprised of subpixels, as above), is defined by a center position, or centroid, P which describes the X, Y, Z position of the feature center in the screen environment, and thus may be defined by a first quantity Pi which defines the feature center in the I vertical screen direction, and by a second quantity Pj which defines the feature center in the J horizontal screen direction, both as located with respect to a central screen point (not shown) at which Pi =0=Pj ; the feature 16 is also defined by a non-zero-length radius R describing the size of feature 16, and at least one color attribute. As with the positions of the polygon vertices 14V1-14V3 of FIG. 1, the centroid position P can be transformed, projected and scaled to determine the I, J positions thereof on an image screen; the feature radius R has hitherto been accommodated in one of two ways: either a substantially zero radius ("true point") has been assumed, or an actual radius has been carried through all transformations and the resulting non-zero-sized feature has remained a circular feature under all transformations.

In accordance with another feature of the present invention, all of the pixels/subpixel cells 11' about the centroid of a circular feature are tested to determine whether each pixel/subpixel cell is interior or exterior to the feature, in the image plane in which the feature is circular; once a pixel/subpixel cell is determined to be a cell 18 interior to the feature (i.e. to be an includable cell lying on a cell line), that pixel/subpixel cell is so marked and remains interior to the feature even while the feature undergoes transformation, projection, scaling and the like operations, so that the final feature includes all the necessary pixels/subpixel cells, even if the final image shape is distorted (e.g. into a line, ellipse and the like) from a true circle. Thus, each pixel/subpixel cell is processed and tested to determine whether that pixel/subpixel cell is interior to the feature surface and if so, color and Z distance of the circular feature is assigned to the pixel/subpixel cell. Subsequently, if other surfaces lie on that cell, a depth buffer operation, itself well known to those skilled in the art, can be performed to find the closest, and therefore, visible, surface on the pixel/subpixel; the depth buffer operation and theory is of no concern in the present invention, and is specifically excluded therefrom.

In order to allow for subsequent ellipticity of the feature, after transformation and the like operations, the common circular radius R is first transformed into a vertical radius Rv which is maintained separate from the horizontal radius Rh. The two radii are initially equal, Rh =Rv, as the feature 16 starts out as a circular feature, but can change to an ellipse as the display is operated upon. Each of the vertical and horizontal radii is now expressed in terms of the number of pixels/subpixel cells 11' traversed thereby, by the following procedure: a pixelized radius Rp is found by taking the quotient of the feature radius R and the Z component of the feature centroid, i.e. Rp =R/z. The vertical radius Rv =Si *Rp, where Si is the I direction scaling factor, Si =Imax /(2tan(Φ/2)), where Imax is the number of pixels I vertical direction and Φ is the vertical field-of-view half angle. Similarly, the horizontal radius Rh =Sj *Rp, where Sj is the J direction scaling factor, Sj =Jmax /(2 tan (Θ/2)), where Jmax is the number of pixels in the J horizontal direction and Θ is the horizontal field-of-view half angle. The projected centroid positions Pi and Pj are now known, as are the horizontal and vertical radii Rh and Rv, so that the pixel/subpixels 18 which lie within the circular feature boundary can be found by testing the point to determine whether the pixel/subpixel is interior to the feature or not.

The feature 16 lies on the image screen portion 10' and covers a multiplicity of cells 11' (pixels or subpixels, dependent upon the particular CIG system in use). For purpose of illustration, we assume that each cell 11' is a subpixel, with a square array of SS subpixels forming a single pixel, and with a multiplicity of pixels being arrayed to form at least the screen portion 10'. Consider any subpixel 18, such as the pixel 18a having a center at a position (i, j). In general, this pixel 18a is not the pixel in which the feature 16 centroid Pi, Pj lies, and so must be tested for inclusion or exclusion in the feature (the sub-pixel 18b in which centroid Pi, Pj lies is the only cell which is automatically included in the feature). A presently preferred method of testing commences by first finding a ΔI where ΔI=|i-Pi |, and is the screen vertical direction offset distance. The length of a line segment L from the vertical diameter of the feature 16 to the point feature edge, at a vertical offset distance ΔI between the middle of the row and the feature centroid, is

L=Rh (1-(ΔI/Rv)2)1/2 

which is derivable from the equation of an ellipse. Once the length of line segment L is found, a start Jstart line 20a and a stop Jstop line 20b can be found in the horizontal direction as

Jstart =Pj -L


Jstop =Pj +L.

For each row Ii of pixels, for i from Pi -Rv through Pi +Rv, each of the subpixel column designators j can be compared to Jstart and Jstop, and the subpixel will be inside the desired feature if

Jstart ≦j≦Jstop.

This condition is tested for by suitable means, and an output is enabled if the cell is includable in the feature.

These calculations can be carried out by a properly programmed general purpose computational means, such as a microprocessor and the like, or by dedicated hardware, such as the apparatus 20 shown in FIG. 3 and further explained, by way of example only, for rows I=21 through I=27 and columns J =15 through J=21 of the display portion in FIG. 2. For each of the rows Ii (where the maximum and minimum values, and the sequential-stepping through the subsequent range thereof, is determined by computational means not shown, in manner well known to the art), the difference between Ii and the vertical centroid position Pi is taken in a differencing means 22, to derive the absolute vertical offset ΔI. For example, if feature 16 has a centroid Pi =24 and Pj =18, with R=3, then the first row to be considered has Ii =(Pi -R)=21 and the last row is Ii =(Pi +R) =27. Initially, ΔI= 3(for row I=21). The feature vertical radius Rv data (e.g. here Rv =R) is input along with ΔI data, into a divisor means 24, to obtain the quantity (ΔI/Rv) data, here now equal to 1. The data for (ΔI/Rv) is provided to the x input 26a of a means 26 for providing an output y=(1-x2)1/2 at a data output 26b. Means 26 can be a square-root-providing means utilizing a table look-up (TLU) in which the square root of the quantity in parentheses is found by table look-up operations, in matter well known to the computational arts. The y quantity data at output 26b is the data of quantity (L/Rh) and is multiplied, in a multiplier means 28, by the horizontal radius Rh (here, Rh =R=3) of the feature feature, to obtain the line segment length L. Thus, for row I=21, the line segment L length is zero (the extent of point 16 at the center of row 21). There would be no further computation with L≦0. The next row Ii =22 data is now processed; ΔI is now equal to 2 and L is found to be about 2.24 subpixels long. The L data, for the present row, is simultaneously input to a first input of a subtractor means 30a and a first input of an addition means 30b. The remaining inputs of both means 30a and 30b receive the centroid column data Pj, so that the respective means 30a and 30b can provide the column start and stop data Jstart and Jstop, respectively. For row I= 22, Jstart is computed to be (18-2.24)≈(15.76) and is rounded off to Jstart =16; Jstop is computed as (18+2.24)=20.24 and is rounded off to Jstop =20. An arithmetic logic unit 42a compares the Ji column value with the start/stop values, and enables output 20c if the cell is within the feature. Thus, for (along the midrow of) Ii =22, all subpixels 18c-18f between J=16 and J=20 are included in the feature. It will be understood that, if there is vertical symmetry of a circular feature, the same beginning column Jstart and ending column Jstop obtain in the Ii =Pi +ΔI row (e.g. the Ii =26th row includes the subpixels 18c'-18 f' between J=16 and J=20). Having obtained the included subpixels in a row, the controlling circuitry introduces the next sequential row number (e.g. Ii =23) into means 22, and uses the new Jstart (=15) and Jstop (=21) data (also provided at outputs 20a/20b) to find the cells (subpixels 18g, through 18h) includable in that row (and, if symmetry is used, the subpixels 18g' through 18h' in the Ii +Pi +ΔI, here Ii =25, row). All rows are sequentially checked and a list is kept of includable cells, for subsequent use, as needed.

While one presently preferred embodiment is shown of our novel method for determining which cells of a display cell array are includable in a circular feature, many modifications and variations will now occur to those skilled in the art. It is our intent to be limited only by the scope of the appending claims, and not by the specific details and instrumentalities described for the exemplary embodiment set forth hereinabove.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3789200 *Jun 30, 1972Jan 29, 1974IbmCircle or arc generator for graphic display
US4371933 *Oct 6, 1980Feb 1, 1983International Business Machines CorporationBi-directional display of circular arcs
US4459676 *Jun 18, 1981Jul 10, 1984Nippon Electric Co., Ltd.Picture image producing apparatus
US4835722 *Nov 9, 1987May 30, 1989International Business Machines CorporationCurve generation in a display system
US4962468 *Dec 9, 1987Oct 9, 1990International Business Machines CorporationSystem and method for utilizing fast polygon fill routines in a graphics display system
US5146551 *Apr 18, 1986Sep 8, 1992International Business Machines CorporationSystem for generating a circular or elliptic arc on a digital display
US5261033 *Oct 31, 1990Nov 9, 1993Dainippon Screen Mfg. Co., Ltd.Method of and apparatus for converting line graphic into graphic having curve
US5274754 *Apr 14, 1986Dec 28, 1993Advanced Micro Devices, Inc.Method and apparatus for generating anti-aliased vectors, arcs and circles on a video display
US5299302 *Aug 5, 1992Mar 29, 1994Hewlett-Packard CompanyMethod and apparatus for trimming b-spline descriptions of patches in a high performance three dimensional graphics system
Non-Patent Citations
1 *Foley et al. Computer Graphics Principles and Practice, (1990).
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US5793386 *Jun 28, 1996Aug 11, 1998S3 IncorporatedRegister set reordering for a graphics processor based upon the type of primitive to be rendered
US5828382 *Aug 2, 1996Oct 27, 1998Cirrus Logic, Inc.Apparatus for dynamic XY tiled texture caching
US5835097 *Dec 30, 1996Nov 10, 1998Cirrus Logic, Inc.Non-homogenous second order perspective texture mapping using linear interpolation parameters
US5835104 *Apr 23, 1997Nov 10, 1998S3 IncorporatedVariable band size compositing buffer method and apparatus
US5841442 *Dec 30, 1996Nov 24, 1998Cirrus Logic, Inc.Method for computing parameters used in a non-homogeneous second order perspective texture mapping process using interpolation
US5844576 *Dec 30, 1996Dec 1, 1998Cirrus Logic, Inc.Tiled linear host texture storage
US5875295 *Sep 30, 1996Feb 23, 1999S3 IncorporatedInstruction format for ensuring safe execution of display list
US5929869 *Mar 5, 1997Jul 27, 1999Cirrus Logic, Inc.Texture map storage with UV remapping
US5936635 *Jun 28, 1996Aug 10, 1999Cirrus Logic, Inc.System and method of rendering polygons into a pixel grid
US5940090 *May 7, 1997Aug 17, 1999Cirrus Logic, Inc.Method and apparatus for internally caching the minimum and maximum XY pixel address values in a graphics subsystem
US5949421 *Mar 31, 1997Sep 7, 1999Cirrus Logic, Inc.Method and system for efficient register sorting for three dimensional graphics
US5977983 *Feb 20, 1997Nov 2, 1999S3 IncorporatedMethod and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge
US5978895 *Apr 4, 1997Nov 2, 1999Cirrus Logic, Inc.Method for speeding mathematical operations in a processor core
US5986663 *Oct 10, 1997Nov 16, 1999Cirrus Logic, Inc.Auto level of detail-based MIP mapping in a graphics processor
US5987582 *Sep 30, 1996Nov 16, 1999Cirrus Logic, Inc.Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US6002409 *Oct 29, 1997Dec 14, 1999Cirrus Logic, Inc.Arbitration for shared graphics processing resources
US6008796 *May 15, 1997Dec 28, 1999S3 IncorporatedSoftware-based dithering method and apparatus using ramp probability logic
US6028613 *Mar 20, 1997Feb 22, 2000S3 IncorporatedMethod and apparatus for programming a graphics subsystem register set
US6052127 *Dec 30, 1996Apr 18, 2000Cirrus Logic, Inc.Circuit for determining non-homogenous second order perspective texture mapping coordinates using linear interpolation
US6054993 *Sep 17, 1997Apr 25, 2000Cirrus Logic, Inc.Chroma-keyed specular texture mapping in a graphics processor
US6072508 *Mar 14, 1997Jun 6, 2000S3 IncorporatedMethod and apparatus for shortening display list instructions
US6088016 *Dec 30, 1996Jul 11, 2000S3 IncorporatedDithering method and apparatus using ramp probability logic
US6097401 *Nov 26, 1997Aug 1, 2000Cirrus Logic, Inc.Integrated graphics processor having a block transfer engine for automatic graphic operations in a graphics system
US6130674 *Mar 31, 1997Oct 10, 2000Cirrus Logic, Inc.Dynamically selectable texture filter for computer graphics
US6157386 *Oct 10, 1997Dec 5, 2000Cirrus Logic, IncMIP map blending in a graphics processor
US6181347Sep 17, 1997Jan 30, 2001Cirrus Logic, Inc.Selectable mode smoothing texture filter for computer graphics
US6252606Jun 30, 1998Jun 26, 2001Cirrus Logic, Inc.Error correction in a graphics processor
US6259455Jun 30, 1998Jul 10, 2001Cirrus Logic, Inc.Method and apparatus for applying specular highlighting with specular components included with texture maps
US6266753Jul 10, 1997Jul 24, 2001Cirrus Logic, Inc.Memory manager for multi-media apparatus and method therefor
US6333746Nov 6, 1997Dec 25, 2001Cirrus Logic, Inc.Auto level of detail texture mapping for a software graphics engine
US6348917Sep 30, 1996Feb 19, 2002Cirrus Logic, IncDynamic switching of texture mip-maps based on depth
US6744434Nov 30, 2001Jun 1, 2004Caterpillar IncCuts removal system for triangulated CAD Models
US6897863Nov 30, 2001May 24, 2005Caterpillar IncSystem and method for hidden object removal
US8681154 *Jul 15, 2010Mar 25, 2014Rockwell Collins, Inc.Adaptive rendering of indistinct objects
US20030103048 *Nov 30, 2001Jun 5, 2003Caterpillar Inc.System and method for hidden object removal
US20060109285 *Nov 23, 2004May 25, 2006Chan Victor GMethod and apparatus for writing a non-rectangular frame to a display device
U.S. Classification345/627, 345/442, 345/428
International ClassificationG06T11/40
Cooperative ClassificationG06T11/40
European ClassificationG06T11/40
Legal Events
Jan 14, 1998ASAssignment
Owner name: REAL 3D, INC., FLORIDA
Effective date: 19971230
Nov 30, 1998FPAYFee payment
Year of fee payment: 4
Mar 22, 2001ASAssignment
Effective date: 20010301
Sep 30, 2002FPAYFee payment
Year of fee payment: 8
Nov 27, 2006FPAYFee payment
Year of fee payment: 12