Skip to content

Instantly share code, notes, and snippets.

@M2skills
Last active November 9, 2016 18:51
Show Gist options
  • Save M2skills/a3558df7e7e10ee8b395b3977e7ddb7c to your computer and use it in GitHub Desktop.
Save M2skills/a3558df7e7e10ee8b395b3977e7ddb7c to your computer and use it in GitHub Desktop.
/*program to draw a graph of rainfall acording to % for 5 years*/
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void drawline(int,int,int,int,int);
void main()
{
int gd=0,gm,i;
int x,y,data1,data2,data3,data4,data5;
int blue=1,red=4,green=2,magneta=5,cyan=3,white=15;
initgraph(&gd,&gm,"C:\\TC\\BGI");
x=getmaxx(); //getting max resolution
y=getmaxy();
printf("\nENTER THE RAINFALL DATA FOR YEAR 2010 : "); //accepting data from user
scanf("%d",&data1);
printf("ENTER THE RAINFALL DATA FOR YEAR 2011 : ");
scanf("%d",&data2);
printf("ENTER THE RAINFALL DATA FOR YEAR 2012 : ");
scanf("%d",&data3);
printf("ENTER THE RAINFALL DATA FOR YEAR 2013 : ");
scanf("%d",&data4);
printf("ENTER THE RAINFALL DATA FOR YEAR 2014 : ");
scanf("%d",&data5);
drawline(0,y/2+200,x,y/2+200,white); //drawing x and y axes
drawline(x/2-250,0,x/2-250,y,white);
//bar 1
for(i=200;i<=220;i++)
{
drawline(x/2-i,y-40,x/2-i,y-40-data1,blue);
}
//bar 2
for(i=150;i<=170;i++)
{
drawline(x/2-i,y-40,x/2-i,y-40-data2,green);
}
//bar 3
for(i=100;i<=120;i++)
{
drawline(x/2-i,y-40,x/2-i,y-40-data3,cyan);
}
//bar 4
for(i=50;i<=70;i++)
{
drawline(x/2-i,y-40,x/2-i,y-40-data4,red);
}
//bar 5
for(i=0;i<=20;i++)
{
drawline(x/2-i,y-40,x/2-i,y-40-data5,magneta);
}
getch();
}
void drawline (int xa,int ya,int xb,int yb,int color)
{
int i=0;
//int xorigin,yorigin;
float x1,y1,dx,dy,length,x,y,xinr,yinr;
//xorigin=getmaxx();
//yorigin=getmaxy();
if(abs(xb-xa) > abs(yb-ya)) //step 2 calculate lenght,dx,dy
{
length=abs(xb-xa);
}
else
{
length=abs(yb-ya);
}
dx=(xb-xa)/length;
dy=(yb-ya)/length;
putpixel(xa,ya,color); //step 3 print first pixel
x1=xa;
y1=ya;
for(i=0;i<length;i++) //step 4 print the next pixels by incrementing
{
x1=x1+dx;
y1=y1+dy;
putpixel(x1+0.5,y1+0.5,color);
}
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment