Graphics in C Language

Graphics Libraray in C/C++ Programming

Graphics library provided by borland C is most widely used library for graphics programming. Mostly this graphics library is restricted to be used under 16 bit C programming and MS DOS environment. As discussed earlier that first of all you need to initialize the graphics drivers on the computer. This is done using the initgraph() method provided in graphics.h library. graphics.h is used to include the reference to the graphics library, but actual graphics library can be found in lib directory with the name of graphics.lib. In Dev C++ there is no default graphics library, but there are some third party graphics libraries to be used with Dev C++. You can download this library here, after downloading the library you can read through the manual and copy all the files at their desired locations. Also you will have to add reference to this graphics library in your projects or programs.

Adding the graphics.h in your C programs

If you are using borland C/C++ compiler to program, then you will have to follow these simple steps in ordered to get your C or C++ program running in graphics mode.

  • First you will need to add #include reference at the top of you C/C++ program.
  • Next step is to initialize the graphics environment. This can be achieved using the function
  • Here path is the actual path to the graphics library. You can give the path to this library by giving the complete path, like “C:\\TC\\BGI”, where BGI is the graphics library directory.
  • After initializing the graphics mode you can check for any error which may happen while initializing the graphics mode. The function used to find out any errors is int errorcode = graphresult() which returns the error code for the specific error.
  • If you pass this errorcode to grapherrormsg() function the, it will return the complete description of the error message. And if the errorcode==grOk the you are on the way to develop your first graphics program using C/C++.

If you are using Dev C++ compiler for your graphics programs then you can follow these simple steps to configure your environment for graphics programming.

Simple graphics functions

I am providing few functions here with some description to make you start with graphics programming. I have posted the complete description with a demo C/C++ graphics program at my C and C++ Programming Blog. You can find my blog here, there are three parts of the posts about graphics.h library. First part of the post discusses the necessary functions to get the program ready to draw shapes and styles, second post provides description of necessary functions to draw different shapes and fill them with colors or textures. And the last part is a sample program to demonstrate that how you can write programs in graphics mode.

Function circle

Draws the circle on the screen using a point(x,y) and the radius for the circle.

Function line

This function draws a line in the graphics mode.

Function outtext

Displays a text string on the grpahics screen.

Function outtextxy

Displays the text at a specified position in graphics mode.

Function rectangle

Draws a rectangular box on the screen using the points given in the parameters.

146 Comments

  1. I need to make a programming that works like a voting system…compute votes…and calculates score for finalist and display them in a data text file…using classes and object can anyone help me…

    • Check it out…….

      #include
      using namespace std;
      class voting
      {
      int count[5];
      int spoilt;
      public:
      void initial()
      {
      for(int i=0; i<5; i++)
      {
      count[i]=0;
      }
      spoilt=0;
      }
      void vote(int v)
      {
      if(v0)
      {
      if(v==1)
      count[0]++;
      else if(v==2)
      count[1]++;
      else if(v==3)
      count[2]++;
      else if(v==4)
      count[3]++;
      else
      count[4]++;
      }
      else
      spoilt++;
      }
      void dispvote()
      {
      int i;
      for(i=0; i<5; i++)
      {
      cout<<"candidate"<<i+1<<":"<<count[i]<<endl;
      }

      }
      void dispspoilt()
      {
      cout<<"total spoilt votes:"<<spoilt<<endl;
      }
      };
      int main()
      {
      voting v1;
      v1.initial();
      int choice;
      do
      {
      cout<>choice;
      switch(choice)
      {
      case 1:
      int v2;
      cout<>v2;
      v1.vote(v2);
      break;
      case 2:
      v1.dispvote();
      break;
      case 3:
      v1.dispspoilt();
      break;
      }
      }
      while(choice<4);
      return 0;
      }

  2. //This is a game cross and nought( Zero Katta) in c++.

    void show_game_box();
    char m[3][3];
    void main()
    {
    	int p,q;
    	char ans;
    	cout<<"\t\tCROSS & NOUGHT GAME\n";
    	do
    	{
    		for(p=1;p<=3;p++)
    		{
    			for(q=1;q<=3;q++)
    			{
    				m[p][q]='';
    			}
    		}
    		int i,j,sum=0;
    		while(sum<10)
    		{
    		if(sum==0)
    		show_game_box();
    		cout<<"\n\n\nPlayer 1 is'0'\n";
    		cout<<"Player 1's turn\n";
    		cout<>i;
    		cout<>j;
    		for(;(i>3)||(j<1)||('X'==m[i][j])||('0'==m[i][j]);)
    		{
    			cout<<"Sorry you entered wrong choice\n";
    			cout<<"Enter your choice again\n";
    			cout<>i;
    			cout<>j;
    		}
    		m[i][j]='0';
    		sum++;
    		show_game_box();
    		if((m[1][1]=='0')&&(m[1][1]==m[1][2])&&(m[1][1]==m[1][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[2][1]=='0')&&(m[2][1]==m[2][2])&&(m[2][1]==m[2][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[3][1]=='0')&&(m[3][1]==m[3][2])&&(m[3][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[1][1]=='0')&&(m[1][1]==m[2][2])&&(m[1][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[1][3]=='0')&&(m[1][3]==m[2][2])&&(m[1][1]==m[3][1]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[1][1]=='0')&&(m[1][1]==m[2][1])&&(m[1][1]==m[3][1]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[1][2]=='0')&&(m[1][2]==m[2][2])&&(m[1][2]==m[3][2]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if((m[1][3]=='0')&&(m[1][3]==m[2][3])&&(m[1][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 1 wins the game\n";
    			break;
    		}
    		if(sum==9)
    		{
    			cout<<"\t\tHURRAY!!!!! The game is over\n";
    			cout<<"\t\tNO ONE WINS\n";
    			cout<<"The game is draw\n";
    			break;
    		}
    		cout<<"\n\n\nPlayer 2 is'X'\n";
    		cout<<"Player 2's turn\n";
    		cout<>i;
    		cout<>j;
    		for(;(i>3)||(j<1)||('X'==m[i][j])||('0'==m[i][j]);)
    		{
    			cout<<"Sorry you entered wrong choice\n";
    			cout<<"Enter your choice again\n";
    			cout<>i;
    			cout<>j;
    		}
    		m[i][j]='X';
    		sum++;
    		show_game_box();
    		if((m[1][1]=='X')&&(m[1][1]==m[1][2])&&(m[1][1]==m[1][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[2][1]=='X')&&(m[2][1]==m[2][2])&&(m[2][1]==m[2][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[3][1]=='X')&&(m[3][1]==m[3][2])&&(m[3][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[1][1]=='X')&&(m[1][1]==m[2][2])&&(m[1][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[1][3]=='X')&&(m[1][3]==m[2][2])&&(m[1][1]==m[3][1]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[1][1]=='X')&&(m[1][1]==m[2][1])&&(m[1][1]==m[3][1]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[1][2]=='X')&&(m[1][2]==m[2][2])&&(m[1][2]==m[3][2]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if((m[1][3]=='X')&&(m[1][3]==m[2][3])&&(m[1][1]==m[3][3]))
    		{
    			cout<<"CONGRATULATIONS!!!!!!!!!!\n";
    			cout<<"player 2 wins the game\n";
    			break;
    		}
    		if(sum==9)
    		{
    			cout<<"\t\tHURRAY The game is over\n";
    			cout<<"\t\tNO ONE WINS\n";
    			cout<<"\t\tThe game is drawn\n";
    			break;
    		}
    		}
    		cout<>ans;
    	}while((ans=='y')||(ans=='Y'));
    	system("PAUSE");
    	getch();
    }
    void show_game_box()
    {
    	cout<<"\n    1 2 3\n"<<endl;
    	cout<<"  1 "<<m[1][1]<<"|"<<m[1][2]<<"|"<<m[1][3]<<endl;
    	cout<<"    -|-|-\n";
    	cout<<"  2 "<<m[2][1]<<"|"<<m[2][2]<<"|"<<m[2][3]<<endl;
    	cout<<"    -|-|-\n";
    	cout<<"  3 "<<m[3][1]<<"|"<<m[3][2]<<"|"<<m[3][3]<<"\n\n\n";
    }
    • took your cursur to the header file in the c program and then press
      “ctrl+f1” then u found all the functions of that header file

  3. could anyone help me to get a code for conversion of a digital image file into the matrix containing the pixels values of the image..

  4. can u give a tutorial about this.

    Project Name: Implementation of Recursion and Tracing its Stack (Graphically)

    Description: This project will implement and trace recursive functions graphically.

  5. i using a turbo c++ to do a graphical in C..this error be occur what should i do…
    Fatal ..\INCLUDE\GRAPHICS.H 19: Error directive: BGI graphics not supported under Windows

  6. i using a tc3 to do a graphical in C..this error be occur what should i do…

    #include <graphics.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    
    void draw(int x1,int y1,int x2,int y2);
    void main()
    {
    
        int x1,y1,x2,y2;
        int gdriver=DETECT,gmode,errorcode;
        initgraph(&gdriver,&gmode,"C:\\TC\\BGI");
        printf("Enter the first point \n");
        scanf("%d%d",&x1,&y1);
        printf("\n\n Enter the second point");
        scanf("%d%d",&x2,&y2);
        printf("\n\n The line is shown below");
        draw(x1,y1,x2,y2);
        getch();
    }
    void draw(int x1,int y1,int x2,int y2)
    {
      int x,y,e,i,dx,dy,a;
      x=x1;
      y=y1;
      dx=x2-x1;
      dy=y2-y1;
      a=dx;
      dx=dy;
      dy=a;
      e=2*dy-dx;
      for(i=1;i0)
        {
          x=x+1;
          e=e-2*dx;
        }
        y=y+1;
        e=e+2*dy;
      }
      getch();
    }
    when i run this programme getting error
    Linker error:undefined symbol  _putpixel in module myfile name.
    i have executed this programme in lab pc.
  7. hello…
    need ur help guyz..
    i have to add graphics in ma game hangman… plz help me… i dun even knw how to start..:(
    i av to submitt ma project tomorrow… culd anyone help me plz..

    nd how to add a library iostream….??

Leave a Reply