Program for Line drawing (Using inbuilt functions)
//#include<stdio.h>
#include<conio.h>
//#include<math.h>
#include<graphics.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\turboc3\\bgi");
cleardevice();
int errorcode;
errorcode=graphresult();
//cout<<errorcode;
if(errorcode!=0)
{
cout<<"Graphics Error"<<grapherrormsg(errorcode);
cout<<"Press to halt";
getch();
}
line(0,0,100,100);
getch();
closegraph();
}
Program for Line drawing (Using DDA algorithm, Digital Differential Analyzer)
#include <graphics.h>
#include <stdio.h>
#include <math.h>
#include <dos.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
float x,y,x1,y1,x2,y2,dx,dy,step;
int i, gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\turboc3\\bgi");
cleardevice();
int errorcode;
errorcode=graphresult();
//cout<<errorcode;
if(errorcode!=0)
{
cout<<"Graphics Error"<<grapherrormsg(errorcode);
cout<<"Press to halt";
getch();
}
cout<<"Enter the value of x1 and y1 : ";
scanf("%f%f",&x1,&y1);
cout<<"Enter the value of x2 and y2: ";
scanf("%f%f",&x2,&y2);
dx=abs(x2-x1);
dy=abs(y2-y1);
if(dx>=dy)
step=dx;
else
step=dy;
dx=dx/step;
dy=dy/step;
x=x1;
y=y1;
i=1;
while(i<=step)
{
putpixel(x,y,5);
x=x+dx;
y=y+dy;
i=i+1;
delay(10);
}
//line(0,0,100,100);
cout<<"done";
getch();
closegraph();
}
Program to draw a straight line using Bresenham's algorithm
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
void main()
{
clrscr();
int gdriver=DETECT;
int gmode;
char path;
initgraph(&gdriver,&gmode,"C:\\TURBOC3\\BGI\\");
int xa,xb,ya,yb,xend;
cout<<"Enter First x Co-ordinate (xa): ";
cin>>xa;
cout<<"Enter First y Co-ordinate (ya): ";
cin>>ya;
cout<<"Enter Second x Co-ordinate (xb): ";
cin>>xb;
cout<<"Enter Second y Co-ordinate (yb): ";
cin>>yb;
int dx=abs(xa-xb);
int dy=abs(ya-yb);
int p=2*dy-dx;
int twody=2*dy;
int twodydx=2*(dy-dx);
int x,y;
if(xa>xb)
{
x=xb;
y=yb;
xend=xa;
}
else
{
x=xa;
y=ya;
xend=xb;
}
putpixel(x,y,WHITE);
while(x<xend)
{
x++;
if(p<0)
{
p=p+twody;
}
else
{
y++;
p=p+twodydx;
}
putpixel(x,y,WHITE);
}
getch();
closegraph();
}
Write a program to draw a circle using mid point algorithm
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
void
main()
{
clrscr();
int gdriver=DETECT;
int gmode;
char path;
initgraph(&gdriver, &gmode,
"C:\\TURBOC3\\BGI\\");
int xc,yc,radius;
cout<<"Enter xc=";
cin>>xc;
cout<<"Enter yc=";
cin>>yc;
cout<<"Enter radius=";
cin>>radius;
int x=0;
int y=radius;
int p= 1-radius;
void circle1(int,int,int,int);
circle1(xc,yc,x,y);
while(x<y)
{
x++;
if(p<0)
{
p=p+(2*x+1);
}
else
{
y--;
p=p+(2*(x-y)+1);
}
circle1(xc,yc,x,y);
}
getch();
closegraph();
}
void circle1(int xc, int yc, int x, int y)
{
putpixel(xc+x,yc+y,5);
putpixel(xc-x,yc+y,5);
putpixel(xc+x,yc-y,5);
putpixel(xc-x,yc-y,5);
putpixel(xc+y,yc+x,5);
putpixel(xc+y,yc-x,5);
putpixel(xc-y,yc+x,5);
putpixel(xc-y,yc-x,5);
}
No comments:
Post a Comment