4. PROGRAM NO:-2
AIM:- Write a program to draw a circle using Bresenham’s algorithm.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void circleBRES(int x1,int y1,int x2,int y2);
void main()
{
int x1,y1,x2,y2,r,d;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:TURBOC3BGI");
printf("Enter the center point of circle:");
scanf("%d%d",&x1,&y1);
printf("Enter the radius of the circle:");
scanf("%d",&r);
x2=0;
y2=r;
d=3-2*r;
circleBRES(x1,y1,x2,y2);
while(x2<y2)
{
x2++;
if(d<0)
d+=4*x2+6;
else
{
y2--;
d+=4*(x2-y2)+10;
}
circleBRES(x1,y1,x2,y2);
}
getch();
}
void circleBRES(int x1,int y1,int x2,int y2)
{
putpixel(x1+x2,y1+y2,1);
putpixel(x1-x2,y1+y2,2);
putpixel(x1+x2,y1-y2,3);
putpixel(x1-x2,y1-y2,4);
putpixel(x1+y2,y1+x2,5);
putpixel(x1-y2,y1+x2,6);
putpixel(x1+y2,y1-x2,7);
putpixel(x1-y2,y1-x2,8);
}
6. PROGRAM NO:-3
Aim:-Write a program to rotate a line about its mid point.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y,rad=100;
double i;
initgraph(&gd,&gm,"C:TCbgi");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
while(!kbhit()) {
for(i=0.0;i<=6.28;i+=0.52)
{
cleardevice();
line(x,y+2,x,y-2);
line(x+(rad*cos(i)),y+(rad*sin(i)),x-(rad*cos(i)),y-(rad*sin(i)));
delay(250); }
}
getch();
}
8. PROGRAM NO:-4
Aim:-Write a program to move a circle about circumference of another
circle.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y,rad=50;
double i=0.52;
initgraph(&gd,&gm,"C:TURBOC3BGI");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
while(!kbhit())
{
for(i=0.0;i<=6.28;i+=0.52)
{
cleardevice();
circle(x,y,rad);
circle(x+((rad+20)*cos(i)),y+((rad+20)*sin(i)),20);
delay(350);
}
}
getch();
}
27. PROGRAM NO:-10
Aim:-Write a program to translate a line passing from centre of ellipse.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y;
int i;
initgraph(&gd,&gm,"C:TCbgi");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
for(i=x-200;i<=x-110;i++)
{
cleardevice();
setfillstyle(6,2);
fillellipse(x,y,30,80);
setfillstyle(0,0);
fillellipse(x,y,2,4);
line(i,y,i+80,y);
if(i==x-110)
{
for(j=0;j<=80;j++)
{
cleardevice();