Implement vertical bar chart animation using C graphics
#include <conio.h>
#include <graphics.h>
#include <dos.h>
int main() {
char str[64];
/* request auto detection */
int gdriver = DETECT, gmode, err;
int i, midx, midy, tmp1, tmp2;
int v[4][2], w[4][2], x[4][2], y[4][2], z[4][2];
char depart[5][32] = {"ELECTRONICS", "MEDICAL",
"MUSIC", "CLOTHING",
"SERVICES"};
/* initialize graphic mode */
initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
err = graphresult();
if (err != grOk) {
/* error occurred */
printf("Graphics Error: %s",
grapherrormsg(err));
return 0;
}
/* mid position in x and y axis */
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* line at y and x-axis */
line(70, 0, 70, getmaxy() - 50);
line(70, getmaxy() - 50, getmaxx(), getmaxy() - 50);
/* units at y-axis */
for (i = 0; i < 5; i++) {
sprintf(str, "%d", 25 * i);
settextstyle(TRIPLEX_FONT, HORIZ_DIR, 1);
settextjustify(CENTER_TEXT, CENTER_TEXT);
moveto(40, getmaxy() - 70 - i * 80);
outtext(str);
}
/* y-axis represents revenue */
moveto(10, midy);
settextstyle(TRIPLEX_FONT, VERT_DIR, 3);
sprintf(str, "%s", "REVENUE");
outtext(str);
/* x-axis represent departments */
moveto(midx, getmaxy() - 10);
settextstyle(TRIPLEX_FONT, HORIZ_DIR, 1);
sprintf(str, "%s", "DEPARTMENTS");
outtext(str);
tmp1 = getmaxy() - 40;
tmp2 = 135;
/* place the departments in x-axis */
for (i = 0; i < 5; i++) {
moveto(tmp2, tmp1);
outtext(depart[i]);
tmp2 = tmp2 + 110;
}
/* set the initial points of vertical bars */
v[0][0] = 95, v[0][1] = getmaxy() - 51;
v[1][0] = 175, v[1][1] = getmaxy() - 51;
w[0][0] = 205, w[0][1] = getmaxy() - 51;
w[1][0] = 285, w[1][1] = getmaxy() - 51;
x[0][0] = 315, x[0][1] = getmaxy() - 51;
x[1][0] = 395, x[1][1] = getmaxy() - 51;
y[0][0] = 425, y[0][1] = getmaxy() - 51;
y[1][0] = 505, y[1][1] = getmaxy() - 51;
z[0][0] = 535, z[0][1] = getmaxy() - 51;
z[1][0] = 615, z[1][1] = getmaxy() - 51;
/* animate vertical bar graphs */
for (i = 0; i < getmaxy() - 100; i++) {
/* vertical bar 1 - electronics */
if (i <= getmaxx() - 310) {
setcolor(BLUE);
line(v[0][0], v[0][1], v[1][0], v[1][1]);
v[0][1] = v[0][1] - 1;
v[1][1] = v[1][1] - 1;
}
/* vertical bar 2 - medical */
if (i <= getmaxx() - 340) {
setcolor(LIGHTRED);
line(w[0][0], w[0][1], w[1][0], w[1][1]);
w[0][1] = w[0][1] - 1;
w[1][1] = w[1][1] - 1;
}
/* vertical bar 3 - music */
if (i <= getmaxx() - 380) {
setcolor(LIGHTGREEN);
line(x[0][0], x[0][1], x[1][0], x[1][1]);
x[0][1] = x[0][1] - 1;
x[1][1] = x[1][1] - 1;
}
/* vertical bar 4 - clothing */
if (i <= getmaxx() - 450) {
setcolor(DARKGRAY);
line(y[0][0], y[0][1], y[1][0], y[1][1]);
y[0][1] = y[0][1] - 1;
y[1][1] = y[1][1] - 1;
}
/* vertical bar 5 - services */
if (i <= getmaxx() - 550) {
setcolor(YELLOW);
line(z[0][0], z[0][1], z[1][0], z[1][1]);
z[0][1] = z[0][1] - 1;
z[1][1] = z[1][1] - 1;
}
/* sleep for 25 milliseconds */
delay(25);
}
getch();
/* deallocate memory allocated for graphic screen */
closegraph();
return 0;
}
Output: (Vertical bar chart - animation using c graphics)
It has been simply incredibly generous with you to provide openly what exactly many individuals would’ve marketed for an eBook to end up making some cash for their end, primarily given that you could have tried it in the event you wanted.
ReplyDeleteData Science Interview Questions
Angular JS Interview Questions
Big Data Training in Velachery
AWS Certified Developer
Best Resource of Learning Devops
Blueprism Interview Questions
Automation Anywhere Interview Questions
thankyou
ReplyDeletethankyou live link
ReplyDelete