Write a program in C to draw 3D bar chart on screen using graphics.h header file
In this program, we will draw a 3D bar graph on screen. Here, we will use line, setfillstyle and bar3d functions of graphics.h header file to draw horizontal and vertical axis and bars on screen.
void line(int x1, int y1, int x2, int y2);
It draws a line from (x1, y1) to (x2, y2).
void setfillstyle(int pattern, int color);
It sets the current fill pattern and fill color.
void bar3d(int xTopLeft, int yTopLeft, int xBottomRight, int yBottomRight, int depth, int topFlag);
bar3d function draws a 3D cuboid and fill front facing surface with current fill pattern and color.
Function Argument | Description |
---|---|
xTopLeft | X coordinate of top left corner. |
yTopLeft | Y coordinate of top left corner. |
xBottomRight | X coordinate of bottom right corner. |
yBottomRight | Y coordinate of bottom right corner. |
depth | It specifies the depth of bar in pixels. |
topFlag | It specifies whether a 3D top to put on the bar or not(any non-zero value specifies a 3d top other wise no 3d top). |
C program to draw 3D bar graph using graphics
#include <graphics.h> #include <conio.h> int main() { int gd = DETECT, gm; initgraph(&gd, &gm, "C:\\TC\\BGI"); settextstyle(BOLD_FONT,HORIZ_DIR,2); outtextxy(275,0,"3D BAR GRAPH"); setlinestyle(SOLID_LINE,0,2); /* Print X and Y Axis */ line(90,410,90,50); line(90,410,590,410); line(85,60,90,50); line(95,60,90,50); line(585,405,590,410); line(585,415,590,410); outtextxy(65,60,"Y"); outtextxy(570,420,"X"); outtextxy(70,415,"O"); /* Print 3D bars */ setfillstyle(XHATCH_FILL, RED); bar3d(150,80,200,410, 15, 1); bar3d(225,100,275,410, 15, 1); bar3d(300,120,350,410, 15, 1); bar3d(375,170,425,410, 15, 1); bar3d(450,135,500,410, 15, 1); getch(); closegraph(); return 0; }
Program Output