Search This Blog

Best Animation in C Graphics With help off Turbo c library



 


#include <stdio.h>

  #include <conio.h>

  #include <graphics.h>

  #include <dos.h>


  /* draw petals of a flower with given color */

  void drawflower(int x1, int y1, int radius, int color, int angle) {

        angle = angle * 4;

        setcolor(color);

        setfillstyle(SOLID_FILL, color);

        pieslice(x1, y1, 10 + angle, 80 - angle, radius);

        pieslice(x1, y1, 100 + angle, 170 - angle, radius);

        pieslice(x1, y1, 190 + angle, 260 - angle, radius);

        pieslice(x1, y1, 280 + angle, 350 - angle, radius);

        return;

  }


  int main() {

        /* request auto detection */

        int gdrive = DETECT, gmode, err;

        int radius, x[4], y[4], r[4];

        int i, j, k, temp, color[5];


        /* initialize graphic mode */

        initgraph(&gdrive, &gmode, "C:/TURBOC3/BGI");

        err = graphresult();


        if (err != grOk) {

                /* error occurred */

                printf("Graphics Error: %s\n",

                                grapherrormsg(err));

                return 0;

        }


        /* assinging center position of flowers */

        x[0] = x[2] = getmaxx() / 4;

        x[1] = x[3] = 3 * getmaxx() / 4;


        y[0] = y[1] = getmaxy() / 4;

        y[2] = y[3] = 3 * getmaxy() / 4;


        /* colors for the flowers */

        color[0] = YELLOW, color[1] = GREEN;

        color[2] = BLUE, color[3] = CYAN;

        color[4] = LIGHTRED;



        while (!kbhit()) {

                /* clears the graphic screen */

                cleardevice();


                /* flower radius */

                radius = 110;

                for (j = 0; j < 5; j++) {

                        temp = color[0];

                        for (k = 1; k < 5; k ++) {

                                color[k - 1] = color[k];

                        }


                        color[4] = temp;


                        /* draws petals of flowers - one by one */

                        drawflower(x[0], y[0], radius, color[0], j);

                        drawflower(x[1], y[1], radius, color[1], j);

                        drawflower(x[2], y[2], radius, color[2], j);

                        drawflower(x[3], y[3], radius, color[3], j);

                        radius = radius - 20;

                        delay(200);

                }


                /* draw stigma(center part) in all 4 flowers */

                setcolor(RED);

                setfillstyle(SOLID_FILL, RED);

                circle(x[0], y[0], 5);

                circle(x[1], y[1], 5);

                circle(x[2], y[2], 5);

                circle(x[3], y[3], 5);

                floodfill(x[0], y[0], RED);

                floodfill(x[1], y[1], RED);

                floodfill(x[2], y[2], RED);

                floodfill(x[3], y[3], RED);


                /* sleep for 300 milliseconds */

                delay(300);

        }


        getch();

        /* deallocate memory allocated for graphic screen */

        closegraph();

        return 0;

  }




Share this article :

0 comments:

Post a Comment