graphics.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
FIGURE.C
                                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
/* FIGURE.C illustrates graphics drawing functions including:
 *      _setpixel   _lineto     _moveto     _rectangle      _ellipse
 *      _pie        _arc        _getarcinfo
 *
 * Window versions of graphics drawing functions (such as _rectangle_w,
 * _ellipse_wxy, and _lineto_w) are illustrated in WINDOW.C and GEDIT.C.
 */
 
#include <conio.h>
#include <stdlib.h>
#include <graph.h>
 
void main()
{
    short x, y;
    struct xycoord xystart, xyend, xyfill;
 
    if( !_setvideomode( _MAXRESMODE ) ) /* Find a valid graphics mode */
        exit( 1 );                      /* No graphics available      */
 
    for( x = 10, y = 50; y < 90; x += 2, y += 3 )/* Draw pixels       */
        _setpixel( x, y );
    getch();
 
    for( x = 60, y = 50; y < 90; y += 3 )        /* Draw lines        */
    {
        _moveto( x, y );
        _lineto( x + 20, y );
    }
    getch();
 
    x = 110; y = 70;                             /* Draw rectangles   */
    _rectangle( _GBORDER,       x - 20, y - 20, x, y );
    _rectangle( _GFILLINTERIOR, x + 20, y + 20, x, y );
    getch();
 
    x = 160;                                     /* Draw ellipses     */
    _ellipse( _GBORDER,       x - 20, y - 20, x, y );
    _ellipse( _GFILLINTERIOR, x + 20, y + 20, x, y );
    getch();
 
    x = 210;                                    /* Draw pies          */
    _pie( _GBORDER,       x - 20, y - 20, x, y,
                          x - 10, y - 20, x - 20, y - 10 );
    _pie( _GFILLINTERIOR, x + 20, y + 20, x,      y,
                          x,      y + 10, x + 10, y );
 
    x = 260;                                     /* Draw arcs         */
    _arc( x - 20, y - 20, x, y, x - 10, y - 20, x - 20, y - 10 );
    _arc( x + 20, y + 20, x, y, x,      y + 10, x + 10, y );
 
    /* Get endpoints of arc and enclose the figure, then fill it. */
    _getarcinfo( &xystart, &xyend, &xyfill );
    _moveto( xystart.xcoord, xystart.ycoord );
    _lineto( xyend.xcoord,   xyend.ycoord );
    _floodfill( xyfill.xcoord, xyfill.ycoord, _getcolor() );
 
    getch();
 
    _setvideomode( _DEFAULTMODE );
}