C Graphics Programming Tutorial

This C Graphics tutorials is for those who want to learn fundamentals of Graphics programming, without any prior knowledge of graphics. This tutorials contains lots of fundamental graphics program like drawing of various geometrical shapes(rectangle, circle eclipse etc), use of mathematical function in drawing curves, coloring an object with different colors and patterns and simple animation programs like jumping ball and moving cars. This tutorial will provide you an overview of computer graphics and it's fundamentals.


The first step in any graphics program is to initialize the graphics drivers on the computer using initgraph method of graphics.h library.

void initgraph(int *graphicsDriver, int *graphicsMode, char *driverDirectoryPath);

It initializes the graphics system by loading the passed graphics driver then changing the system into graphics mode. It also resets or initializes all graphics settings like color, palette, current position etc, to their default values. Below is the description of input parameters of initgraph function.

  • graphicsDriver : It is a pointer to an integer specifying the graphics driver to be used. It tells the compiler that what graphics driver to use or to automatically detect the drive. In all our programs we will use DETECT macro of graphics.h library that instruct compiler for auto detection of graphics driver.
  • graphicsMode : It is a pointer to an integer that specifies the graphics mode to be used. If *graphdriver is set to DETECT, then initgraph sets *graphmode to the highest resolution available for the detected driver.
  • driverDirectoryPath : It specifies the directory path where graphics driver files (BGI files) are located. If directory path is not provided, then it will seach for driver files in current working directory directory. In all our sample graphics programs, you have to change path of BGI directory accordingly where you turbo C compiler is installed.

Colors in C Graphics Programming

There are 16 colors declared in C Graphics. We use colors to set the current drawing color, change the color of background, change the color of text, to color a closed shape etc. To specify a color, we can either use color constants like setcolor(RED), or their corresponding integer codes like setcolor(4). Below is the color code in increasing order.

COLOR MACRO INTEGER VALUE
BLACK 0
BLUE 1
GREEN 2
CYAN 3
RED 4
MAGENTA 5
BROWN 6
LIGHTGRAY 7
DARKGRAY 8
LIGHTBLUE 9
LIGHTGREEN 10
LIGHTCYAN 11
LIGHTRED 12
LIGHTMAGENTA 13
YELLOW 14
WHITE 15

At the end of our graphics program, we have to unloads the graphics drivers and sets the screen back to text mode by calling closegraph function. Here is our first C Graphics program to draw a straight line on screen.

/* C graphics program to draw a line */
#include<graphics.h>
#include<conio.h>
int main() {
    int gd = DETECT, gm;
    /* initialization of graphic mode */
    initgraph(&gd, &gm, "C:\\TC\\BGI"); 
    line(100,100,200, 200);
    getch();
    closegraph();
    return 0;
}

In this program initgraph function auto detects an appropriate graphics driver and sets graphics mode maximum possible screen resolution. Then line function draws a straight line from coordinate (100, 100) to (200, 200). Then we added a call to getch function to avoid instant termination of program as it waits for user to press any key. At last, we unloads the graphics drivers and sets the screen back to text mode by calling closegraph function.

C Graphics Programs

C Program to draw a circle on screen
C Program to draw a rectangle and bar on screen
C Program to draw an eclipse on screen
C Program to draw concentric circles screen
C Program to draw bar graph on screen
C program to draw 3D bar graph on screen
C Program to draw sine wave graph on screen
C Program to draw cosine(cos) wave graph on screen
C Program to draw tangent(tan) graph on screen
C Program to draw stars in night sky on screen
C Program to draw pie chart on screen
C Program to draw digital counter on screen
C program to make a digital clock
C Program for bouncing ball animation
C Program to draw a hut using graphics
C program for moving car animation