m2skills

dda grapg

Apr 18th, 2017
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.95 KB | None | 0 0
  1. /*program to draw a graph of rainfall acording to % for 5 years*/
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<graphics.h>
  5. #include<math.h>
  6.  
  7. void drawline(int,int,int,int,int);
  8. void main()
  9. {
  10.     int gd=0,gm,i;
  11.     int x,y,data1,data2,data3,data4,data5;
  12.     int blue=1,red=4,green=2,magneta=5,cyan=3,white=15;
  13.     initgraph(&gd,&gm,"C:\\TC\\BGI");
  14.     x=getmaxx();            //getting max resolution
  15.     y=getmaxy();
  16.     printf("\nENTER THE RAINFALL  DATA FOR YEAR 2010 : ");      //accepting data from user
  17.     scanf("%d",&data1);
  18.     printf("ENTER THE RAINFALL  DATA FOR YEAR 2011 : ");
  19.     scanf("%d",&data2);
  20.     printf("ENTER THE RAINFALL  DATA FOR YEAR 2012 : ");
  21.     scanf("%d",&data3);
  22.     printf("ENTER THE RAINFALL  DATA FOR YEAR 2013 : ");
  23.     scanf("%d",&data4);
  24.     printf("ENTER THE RAINFALL DATA FOR YEAR 2014 : ");
  25.     scanf("%d",&data5);
  26.     drawline(0,y/2+200,x,y/2+200,white);            //drawing x and y axes
  27.     drawline(x/2-250,0,x/2-250,y,white);
  28.  
  29.     //bar 1
  30.     for(i=200;i<=220;i++)
  31.     {
  32.         drawline(x/2-i,y-40,x/2-i,y-40-data1,blue);
  33.     }  
  34.    
  35.     //bar 2
  36.     for(i=150;i<=170;i++)
  37.     {
  38.         drawline(x/2-i,y-40,x/2-i,y-40-data2,green);
  39.     }
  40.  
  41.     //bar 3
  42.     for(i=100;i<=120;i++)
  43.     {
  44.         drawline(x/2-i,y-40,x/2-i,y-40-data3,cyan);
  45.     }
  46.  
  47.     //bar 4
  48.     for(i=50;i<=70;i++)
  49.     {
  50.         drawline(x/2-i,y-40,x/2-i,y-40-data4,red);
  51.     }
  52.  
  53.     //bar 5
  54.     for(i=0;i<=20;i++)
  55.     {
  56.         drawline(x/2-i,y-40,x/2-i,y-40-data5,magneta);
  57.     }
  58.     getch();
  59. }
  60.  
  61. void drawline (int xa,int ya,int xb,int yb,int color)
  62. {
  63.   int i=0;
  64.   //int xorigin,yorigin;
  65.   float x1,y1,dx,dy,length,x,y,xinr,yinr;
  66.   //xorigin=getmaxx();
  67.   //yorigin=getmaxy();
  68.   if(abs(xb-xa) > abs(yb-ya))  //step 2 calculate lenght,dx,dy
  69.   {
  70.         length=abs(xb-xa);
  71.   }
  72.   else
  73.   {
  74.         length=abs(yb-ya);
  75.   }
  76.   dx=(xb-xa)/length;
  77.   dy=(yb-ya)/length;
  78.   putpixel(xa,ya,color);        //step 3 print first pixel
  79.   x1=xa;
  80.   y1=ya;
  81.   for(i=0;i<length;i++)         //step 4 print the next pixels by incrementing
  82.   {
  83.         x1=x1+dx;
  84.         y1=y1+dy;
  85.         putpixel(x1+0.5,y1+0.5,color);
  86.   }
  87.   return;
  88. }
Add Comment
Please, Sign In to add comment