Git Product home page Git Product logo

cppgraphicsexamples's Introduction

C++ : Graphics Examples

It(==graphics.h==) is called ==BGI==(Borland Graphics Interface).It is an olden 32-bit real-mode DOS library, included with ==Borland's Turbo C and C++ products==. And basically graphics.h, conio.h can be inferred as windows headerfiles. So It'll ==run only one windows==.

The last Borland's C++ IDE for DOS is Borland C++ 3.1 (1992). The last C++ environment which supports BGI is Borland C++ 5.02 (1997), which works under Windows but can compile DOS programs. BGI was accessible in C/C++ with graphics.lib / graphics.h, and in Pascal via the graph unit.

BGI was less powerful than modern graphics libraries such as SDL or OpenGL, since it was designed for 2D presentation graphics instead of event-based 3D applications. However, it has been considered simpler to code. BGI and Turbo C++, although obsolete, are still widely used in education in India.

This repo is for practising C++ graphics (turbo c++) using graphics.h file.

Index {#index}

  1. How to run BGI in dev c++ IDE
  2. How to run BGI in CodeBlocks IDE
  3. How to run BGI in VS Code
  4. Other web resources
  5. Small guide on c++ graphics

Instaructions for dev-c++ {#devCpp}

  1. Download Dev-cpp 5.11 TDM-GCC 4.9.2 from sourceForge.

  2. Install Dev-cpp.

  3. Download Graphics Files For Dev C++ from GDrive - without consoleAppGraphics template or studyReadEducate or GDrive for studyReadEducate and unzip.

  4. Copy the following files to appropriate Dev-cpp folders

    • ๐ŸŸข This step is optional only: copy 6-ConsoleAppGraphics.template and ConsoleApp_cpp_graph.txt from Graphics in Dev C++ to C:\Program Files (x86)\Dev-Cpp\Templates\.
    • โœ”๏ธ Copy graphics.h and winbgim.h from Graphics in Dev C++ to C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\.
    • โœ”๏ธ Copy libbgi.a from Graphics in Dev C++ to C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\.
  5. Choose 32-bit GCC compiler:

    • โš ๏ธ Click on the dropdown in the main ribbon, & select TDM-GCC 4.9.2 32-bit release. as shown in below image

      image \
  6. Choose compiler & add linkers as shown below:

    • โš ๏ธ Click on Tools and choose Compiler and Options

    • Other Linker Options required for the setup graphics.h

      -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32


image
7. To create a new project:

  • File -> New -> Project
  • then select Console Graphics Application under basic tab
  • then choose your desired name & hit ok.
  • prompt will open file explorer, save the .dev file where you want to save your project.
  • --- OR ---
  • Click on File icon -> source file or ctr + N
  1. To execute:

    • Click on execute in the main ribbon, then choose Compile & Run or press F11.
  2. Video references:

  3. Test program

  #include<graphics.h>

  main(){
    initwindow(800, 800);
    //  creating line
    //  line(200, 210, 400, 410);

    //  creating circle (x, y, radius)
    circle(300, 300, 20);
    getch();
  }


๐Ÿ”

Instaructions for code blocks {#codeBlocksCpp}

  1. Download codeblocks-20.03mingw-setup (64 bit) from here.

  2. Just install codeblocks setup.

  3. As we've 64-bit version, we've to set up 32-bit GCC. Because our graphics library(graphics.h) is compatible with 32-bit.

  4. Before moving on, to find the gcc version, Please do the below steps: -> This step is optional

    • ๐ŸŸข Cpp code to find the gcc version
      #include<stdlib.h>
    
      // c++ program to know the gcc version
      int main() {
        system("gcc -v");
        return 0;
      }
    • ๐ŸŸข The click on settings from the main ribbon, then choose Compiler...

    • ๐ŸŸข Then click on Linker settings in the tab from the dialog & remove all the linkers as shown below:

      image

    • ๐ŸŸข Then click on Build from the main ribbon, then choose Build and Run or press F9 to compile & run.

    • ๐ŸŸข You can see the below output

      image

  5. Download 32-bit compiler from here and install it.

  6. Download Graphics Files from here and unzip it.

  7. Copy the following files form downloaded zip folder to the appropriate TDM-GCC-32 folders

    • โœ”๏ธ Copy graphics.h and winbgim.h from downloaded Graphics folder to C:\TDM-GCC-32\include\.
    • โœ”๏ธ Copy libbgi.a from downloaded Graphics folder to C:\TDM-GCC-32\lib.
  8. Add the appropriate linkers

    • ๐ŸŸข The click on settings from the main ribbon, then choose Compiler...

    • ๐ŸŸข Then click on Toolchain executables in the tab from the dialog and choose the new 32-bit gcc compiler as shown below:

      image

    • ๐ŸŸข Then click on Linker settings and add the following linker tags under Other linker options and then hit save as shown below:

      image

  9. Create a new project

    • Click on File -> New -> Project -> Console Application, then click on Go
    • Click on Next, then choose C++ and go on with the prompt.
    • After writing a program, click on compile and run
  10. Test program

  #include <graphics.h>

  int main(){
    int gd=DETECT, gm;
    initgraph(&gd, &gm, (char*)"");
    circle(320, 240, 200);
    getch();
    closegraph();
    return 0;
  }
  1. Changing indentation: settings -> Editor

  2. Video references:

Instaructions for VS Code {#vsCodeCpp}

  1. Download VS Code and Install it

  2. Download 32-bit compiler from here and install it.

  3. Download Graphics Files from here and unzip it.

  4. Copy the following files form downloaded zip folder to the appropriate TDM-GCC-32 folders

    • โœ”๏ธ Copy graphics.h and winbgim.h from downloaded Graphics folder to C:\TDM-GCC-32\include\.
    • โœ”๏ธ Copy libbgi.a from downloaded Graphics folder to C:\TDM-GCC-32\lib.
  5. Go to extensions search bar,

    • search for c++, and choose the extension from Microsoft and install it.
    • Install code runner from extension
  6. Click on view -> command palette or Ctr + Shift + P and type c++:ui as shown below:

    image

  7. Add the below configurations as shown in screenshot:

    • Select a configuration set to edit: win32
    • Compiler path: C:/TDM-GCC-32/bin/g++.exe
    • Compiler arguments:
      -lbgi
      -lgdi32
      -lcomdlg32
      -luuid
      -loleaut32
      -lole32


image

  1. Build the program: Click on Terminal -> Run Build Task or Ctr + Shift + B

    image

    • You'll see the following success info.
       *  Executing task: C/C++: g++.exe build active file
    
       Starting build...
       C:/TDM-GCC-32/bin/g++.exe -fdiagnostics-color=always -g D:\AR_prog\rnd\c-cpp\cppGraphicsExamples\main.cpp -o D:\AR_prog\rnd\c-cpp\cppGraphicsExamples\main.exe -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
    
       Build finished successfully.
       *  Terminal will be reused by tasks, press any key to close it.
    • Then run the following command (./filename)
      ./main
  2. Video reference:

  3. Programming example:

  #include <graphics.h>

  int main(int argc, char const *argv[])
  {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, (char *)"");
    circle(320, 240, 200);
    getch();
    closegraph();
    return 0;
  }


๐Ÿ”

Other Resources {#otherRef}

  1. Guide to setup 'graphics.h' - github
  2. Guide to setup BGI - github
  3. Practical examples to BGI
  4. Graphics (graphics.h) - C Programming tutorial site
  5. Graphics in C Language - My C Plus


๐Ÿ”

Short Guide on c++ Graphics {#cppGraphics}

  • The below content was taken from here
  #include<graphics.h>
  #include<stdio.h>
  #include<conio.h>

  void main(void) {
    int gdriver = DETECT, gmode;
    int x1 = 200, y1 = 200;
    int x2 = 300, y2 = 300;
    clrscr();
    
    initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi");
    line(x1, y1, x2, y2);
    getch();
    closegraph();
  }
  1. Include graphics.h header file.

  2. Initialize the graphics drivers on the computer using initgraph.

      void initgraph(int *graphicsDriver, int *graphicsMode, char *driverDirectoryPath);
    • 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 *gdriver is set to DETECT, then initgraph sets *gmode 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 search 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.
  3. 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.

  4. Colors in C Graphics Programming

    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


๐Ÿ”

cppgraphicsexamples's People

Contributors

actionanand avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.