Computer Graphics Programs Using C
Computer Graphics Programs Using C
Solution:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
void main()
{
int i,gd=0,gm;
char msg;
int a,x1,x2,y1,y2,mx,my;
float m,x,y;
clrscr();
initgraph(&gd,&gm,"C:\\TC\\BGI");
printf("Enter x1 Coordinate: ");
scanf("%d",&x1);
printf("Enter y1 Coordinate: ");
scanf("%d",&y1);
printf("Enter x2 Coordinate: ");
scanf("%d",&x2);
printf("Enter y2 Coordinate: ");
scanf("%d",&y2);
mx=x2-x1;
my=y2-y1;
m=(float)my/mx;
printf("\nSlope: %f \n",m);
x=x1;
y=y1;
printf("\n X : %f \t Y: %f",x,y);
for(i=x1;i<=x2;i++)
{
if(m<1)
{
x=x+1;
y=m+y;
printf("\n X : %f \t Y: %f",x,y);
}
else if(m>1)
{
x=1/m+x;
y=y+1;
printf("\n X : %f \t Y: %f",x,y);
}
else
{
x=x+1;
y=m+y;
printf("\n X : %f \t Y: %f",x,y);
}
Ajit kumar Roy
}
getch();
}
Output:
Output:
34. Gotoxy()
35. delay()
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm,col,x,y,i,mode;
char *mode1;
initgraph(&gd,&gm,"C:\\TC\\BGI");
cleardevice();
putpixel(100,100,WHITE);
col=getpixel(100,100);
printf("\nColor No is: %d\n",col);
setcolor(CYAN);
setfillstyle(1,CYAN);
circle(getmaxx()/4,getmaxy()/4,40);
floodfill(getmaxx()/4,getmaxy()/4,CYAN);
x=getx();
y=gety();
printf("GET X= %d GET Y= %d\n",x,y);
// initgraph
//cleardevice
// putpixel
//getpixel
//setcolor
//setfillstyle
//circle,getmaxx,getmaxy
//floodfill
//getx,gety
setcolor(WHITE);
setlinestyle(SOLID_LINE,1,10);
//setlinestyle
line(250,100,250,200);
//line
delay(200);
//delay
outtextxy(220,220,"Hello through outtextxy");
//outtextxy
outtext("HELLO");
//outtext
setbkcolor(RED);
rectangle(140,200,190,300);
//rectangle
x= getmaxcolor();
printf("Maximum colour is: %d\n",x);
//getmaxcolor
settextstyle(SMALL_FONT,HORIZ_DIR,2);
//settextstyle
outtextxy(250,50,"HELLO...!") ;
bar(100,350,200,400);
//bar
bar3d(250,300,350,250,20,10);
//bar3d
//lineto(350,175);
//lineto
pieslice(400,400,420,380,50);
//pieslice
sector(480,400,460,380,50,50);
//sector
mode=getgraphmode();
printf("\n\n\n\n\n\nMode= %d",mode);
//graphmode
printf("\n");
mode1=getmodename(mode);
printf("Mode name is %s",getmodename(mode));
getch();
closegraph();
}
Ajit kumar Roy
//closegraph
6
Output:
4. WAP to draw a hut and show sun on right side at top and rainbow on left
top side.
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm,i,x,y;
initgraph(&gd,&gm,"C:\\TC\\BGI");
for(i=20;i<60;i++)
{
setcolor(i/5);
arc(120,200,45,135,180-i);
delay(100);
}
setcolor(14);
setfillstyle(SOLID_FILL,14);
circle(getmaxx()-50,100,40);
floodfill(getmaxx()-50,100,14);
setcolor(WHITE);
line(200,220,250,100);
line(300,220,250,100);
line(320,220,270,100);
line(340,220,290,100);
line(360,220,310,100);
line(380,220,330,100);
line(400,220,350,100);
line(420,220,370,100);
line(440,220,390,100);
line(460,220,410,100);
line(480,220,430,100);
line(500,220,450,100);
line(200,220,350,220);
line(250,100,500,100);
line(260,120,500,120);
line(265,140,500,140);
line(275,160,500,160);
line(285,180,500,180);
line(295,200,500,200);
line(250,220,500,220);
line(500,220,500,100);
line(300,400,300,220);
Ajit kumar Roy
line(280,400,280,250);
line(250,400,250,250);
line(220,250,280,250);
line(300,500,400,500);
line(200,400,200,220);
line(220,400,220,250);
line(200,400,300,400);
line(500,220,500,400);
line(270,400,500,400);
circle(getmaxx()/2-70,getmaxy()/2-60,20);
circle(getmaxx()/2-70,getmaxy()/2-60,15);
circle(getmaxx()/2-70,getmaxy()/2-60,10);
circle(getmaxx()/2-70,getmaxy()/2-60,5);
setcolor(CYAN);
rectangle(350,250,450,350);
line(350,300,450,300);
line(400,250,400,350);
getch();
}
Output:
5. WAP to draw all lines horizontally first and then vertical lines.
Solution:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int i,x=0,y=0;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
while(y<=getmaxy())
{
line(x,y,getmaxx(),y);
y=y+40;
delay(300);
}
while(x<getmaxx())
{
line(x,0,x,getmaxy());
x=x+40;
delay(300);
}
getch();
}
Output:
10
6. WAP to display al lines with different styles and display text with specific
style as name of line style below it.
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm,i,y=75;
initgraph(&gd,&gm,"C:\\TC\\BGI");
for(i=0;i<5;i++)
{
setlinestyle(i,1,1);
line(0,y,150,y);
y=y+75;
moveto (100,100);
}
outtextxy(10,95,"SOLID LINE");
outtextxy(10,170,"DOTTED LINE");
outtextxy(10,245,"CENTER LINE");
outtextxy(10,320,"DASHED LINE");
outtextxy(10,395,"USER-DEFINED LINE");
getch();
}
Output:
11
12
13
9. WAP to change background color of screen and and display text as name
of style in different styles in different colors.
Solution:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <string.h>
void main()
{
int i,j,gd=0,gm,k=0;
char msg;
char c[10]
[15]={"DEFAULT_FONT","TRIPLEX_FONT","SMALL_FONT","SANS_SERIF_F
ONT","GOTHIC_FONT"};
clrscr();
initgraph(&gd,&gm,"C://TC//BGI");
for(i=0;i<5;i++)
{
setbkcolor(i+1);
settextstyle(i,k,5);
outtextxy(100,100,c[i]);
delay(1000);
cleardevice();
}
getch();
}
Output:
14
15
10. WAP to show different arcs starting from lower corner of screen to upper
corner.
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd = DETECT,gm,mx,my,i,r=50;
initgraph(&gd,&gm,"C:\\TC\\BGI");
mx=getmaxx();
my=getmaxy();
for(i=0;i<=50;i++)
{
arc(mx,my,90,180,r);
r=r+20;
}
getch();
}
Output:
16
11. WAP to draw a bar3d and its pattern should keep on changing.
Solution:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <dos.h>
void main()
{
int i,gd=0,gm;
char msg;
initgraph(&gd,&gm,"C://TC//BGI");
for(i=1;i<10;i++)
{
setfillstyle(i,BLUE);
bar3d(150,350,getmaxy()-150,getmaxx()-350,30,1);
floodfill(150,350,WHITE);
delay(1000);
cleardevice();
}
getch();
}
Output:
17
18
12. WAP to draw arcs in four corners of the screen, its pattern should keep
changing and background color of screen should also keep changing.
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd = DETECT,gm,mx,my,i;
initgraph(&gd,&gm,"C:\\TC\\BGI");
mx=getmaxx();
my=getmaxy();
for(i=1;i<=5;i++)
{
setbkcolor(i);
setfillstyle(4,10);
arc(0,0,270,360,100);
floodfill(0,0,WHITE);
delay(600);
setfillstyle(4,10);
arc(mx,0,180,270,100);
floodfill(mx,0,WHITE);
delay(600);
setfillstyle(4,10);
arc(0,my,0,90,100);
floodfill(0,my,WHITE);
delay(600);
setfillstyle(4,10);
arc(mx,my,90,180,100);
floodfill(mx,my,WHITE);
delay(400);
cleardevice();
}
getch();
}
19
Output:
20
21
13. WAP to display text in the same color according to color code in center of
screen.
Solution:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <string.h>
void main()
{
int i,j,gd=0,gm,n;
char msg;
char c[10]
[12]={ "BLUE","GREEN","CYAN","RED","MAGENTA","BROWN","LIGHT
GREY","DARK GREY","LIGHT BLUE","LIGHT GREEN"};
clrscr();
initgraph(&gd,&gm,"C://TC//BGI");
for(i=0;i<10;i++)
{
setcolor(i+1);
outtextxy(getmaxx()/4,getmaxy()/4,c[i]);
delay(1000);
cleardevice();
}
getch();
}
Output:
22
23
24
25
}
Output:
26
16. WAP to divide rectangle into 4 parts. Each part should have different
colors initially and then color of 1 part should be visible at time.
Solution:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
void main()
{
int i,gd=0,gm;
char msg;
clrscr();
initgraph(&gd,&gm,"C:\\TC\\BGI");
setfillstyle(1,5);
rectangle(100,100,250,150);
floodfill(110,110,WHITE);
setfillstyle(1,4);
rectangle(250,100,400,150);
floodfill(260,110,WHITE);
setfillstyle(1,7);
rectangle(100,150,250,200);
floodfill(110,160,WHITE);
setfillstyle(1,10);
rectangle(250,150,400,200);
floodfill(260,160,WHITE);
delay(1000);
cleardevice();
rectangle(100,100,250,150);
setfillstyle(1,4);
rectangle(250,100,400,150);
floodfill(260,110,WHITE);
rectangle(100,150,250,200);
rectangle(250,150,400,200);
delay(1000);
cleardevice();
setfillstyle(1,5);
rectangle(100,100,250,150);
floodfill(110,110,WHITE);
rectangle(250,100,400,150);
rectangle(100,150,250,200);
rectangle(250,150,400,200);
delay(1000);
cleardevice();
cleardevice();
Ajit kumar Roy
27
rectangle(100,100,250,150);
rectangle(250,100,400,150);
setfillstyle(1,7);
rectangle(100,150,250,200);
floodfill(110,160,WHITE);
rectangle(250,150,400,200);
delay(1000);
cleardevice();
rectangle(100,100,250,150);
rectangle(250,100,400,150);
rectangle(100,150,250,200);
setfillstyle(1,10);
rectangle(250,150,400,200);
floodfill(260,160,WHITE);
delay(1000);
cleardevice();
getch();
}
Output:
28
29
30
Output:
31
18. WAP to move a ball horizontally and then vertically back and forth.
Solution:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int gd = DETECT,gm,i;
initgraph(&gd,&gm,"C:\\TC\\BGI");
for(i=30;i<getmaxx()-10;i++)
{
circle(i,120,30);
delay(10);
cleardevice();
if(kbhit())
break;
}
for(i=getmaxx()-10;i>30;i--)
{
circle(i,120,30);
delay(10);
cleardevice();
}
//vertical
for(i=30;i<getmaxy()-10;i++)
{
circle(50,i,30);
delay(10);
cleardevice();
if(kbhit())
break;
}
for(i=getmaxy()-10;i>30;i--)
{
circle(50,i,30);
delay(10);
cleardevice();
if(kbhit())
break;
}
getch();
}
32
Output:
33
19. WAP to move ball along 4 sides of the screen till user wants.
Solution:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int gd = DETECT,gm,i,n;
initgraph(&gd,&gm,"C:\\TC\\BGI");
for(i=30;i<getmaxx()-30;i++)
{
circle(i,30,30);
delay(10);
cleardevice();
}
for(i=30;i<getmaxy()-30;i++)
{
circle(getmaxx()-30,i,30);
delay(10);
cleardevice();
}
for(i=getmaxx()-30;i>30;i--)
{
circle(i,getmaxy()-30,30);
delay(10);
cleardevice();
}
for(i=getmaxy()-30;i>30;i--)
{
circle(30,i,30);
delay(10);
cleardevice();
}
getch();
}
34
Output:
35
36
37
getch();
}
Output:
38
39
//Car 2
line(x-40-i,100,x-100-i,100);
line(x-40-i,100,x-10-i,120);
line(x-100-i,100,x-150-i,120);
line(x-10-i,120,x-10-i,130);
line(x-150-i,120,x-150-i,130);
line(x-10-i,130,x-150-i,130);
line(x-10-i,120,x-150-i,120);
//Window 1
line(x-40-i,105,x-25-i,115);
line(x-40-i,105,x-65-i,105);
line(x-25-i,115,x-65-i,115);
line(x-65-i,105,x-65-i,115);
//Window 2
line(x-70-i,105,x-70-i,115);
line(x-70-i,105,x-100-i,105);
line(x-70-i,115,x-125-i,115);
line(x-100-i,105,x-125-i,115);
//Tyres
circle(x-40-i,138,8);
circle(x-40-i,138,4);
circle(x-110-i,138,8);
circle(x-110-i,138,4);
if(kbhit())
break;
}
//Fire
delay(20);
for(j=0;j<4;j++)
{
line(320,120,300,95);
delay(100);
line(320,120,340,95);
delay(30);
line(320,120,315,95);
delay(30);
line(320,120,330,95);
}
getch();
}
40
Output:
41
22. WAP to illustrate traffic simulation program along with countdown timer
and car movement according to signal red, green, yellow.
Solution:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
char output[256];
int gd = DETECT,gm,i,x;
initgraph(&gd,&gm,"C:\\TC\\BGI");
x=getmaxx();
line(x-40,320,x-100,320);
line(x-40,320,x-10,340);
line(x-100,320,x-150,340);
line(x-10,340,x-10,350);
line(x-150,340,x-150,350);
line(x-10,350,x-150,350);
line(x-10,340,x-150,340);
//Window 1
line(x-40,325,x-25,335);
line(x-40,325,x-65,325);
line(x-25,335,x-65,335);
line(x-65,325,x-65,335);
//Window 2
line(x-70,325,x-70,335);
line(x-70,325,x-100,325);
line(x-70,335,x-125,335);
line(x-125,335,x-100,325);
//Tyres
circle(x-40,358,8);
circle(x-40,358,4);
circle(x-110,358,8);
circle(x-110,358,4);
line(24,140,24,370);
line(25,140,25,370);
line(0,370,getmaxx(),370);
line(0,377,getmaxx(),377);
rectangle(0,50,50,140);
for(i=9;i>=0;i--)
{
Ajit kumar Roy
42
delay(400);
setfillstyle(1,RED);
circle(25,70,10);
floodfill(25,70,WHITE);
//sprintf(output,"%d",i);
//outtextxy(40,65,output);
gotoxy(6,5);
printf("%d",i);
delay(400);
gotoxy(8,5);
printf("STOP");
setfillstyle(1,YELLOW);
circle(25,98,10);
floodfill(25,98,BLACK);
setfillstyle(1,GREEN);
circle(25,125,10);
floodfill(25,125,BLACK);
}
delay(300);
cleardevice();
line(x-40,320,x-100,320);
line(x-40,320,x-10,340);
line(x-100,320,x-150,340);
line(x-10,340,x-10,350);
line(x-150,340,x-150,350);
line(x-10,350,x-150,350);
line(x-10,340,x-150,340);
//Window 1
line(x-40,325,x-25,335);
line(x-40,325,x-65,325);
line(x-25,335,x-65,335);
line(x-65,325,x-65,335);
//Window 2
line(x-70,325,x-70,335);
line(x-70,325,x-100,325);
line(x-70,335,x-125,335);
line(x-125,335,x-100,325);
//Tyres
circle(x-40,358,8);
circle(x-40,358,4);
circle(x-110,358,8);
circle(x-110,358,4);
43
line(24,140,24,370);
line(25,140,25,370);
line(0,370,getmaxx(),370);
line(0,377,getmaxx(),377);
rectangle(0,50,50,140);
for(i=5;i>=0;i--)
{
setfillstyle(1,RED);
circle(25,70,10);
floodfill(25,70,BLACK);
setfillstyle(1,GREEN);
circle(25,125,10);
floodfill(25,125,BLACK);
setfillstyle(1,YELLOW);
circle(25,98,10);
floodfill(25,98,WHITE);
gotoxy(8,7);
printf("READY");
delay(400);
gotoxy(6,7);
delay(100);
printf("%d",i);
//sprintf(output,"%d",i);
//outtextxy(40,95,output);
}
delay(300);
cleardevice();
line(x-40,320,x-100,320);
line(x-40,320,x-10,340);
line(x-100,320,x-150,340);
line(x-10,340,x-10,350);
line(x-150,340,x-150,350);
line(x-10,350,x-150,350);
line(x-10,340,x-150,340);
//Window 1
line(x-40,325,x-25,335);
line(x-40,325,x-65,325);
line(x-25,335,x-65,335);
line(x-65,325,x-65,335);
//Window 2
line(x-70,325,x-70,335);
line(x-70,325,x-100,325);
line(x-70,335,x-125,335);
Ajit kumar Roy
44
line(x-125,335,x-100,325);
//Tyres
circle(x-40,358,8);
circle(x-40,358,4);
circle(x-110,358,8);
circle(x-110,358,4);
line(24,140,24,370);
line(25,140,25,370);
line(0,370,getmaxx(),370);
line(0,377,getmaxx(),377);
rectangle(0,50,50,140);
setfillstyle(1,RED);
circle(25,70,10);
floodfill(25,70,BLACK);
setfillstyle(1,YELLOW);
circle(25,98,10);
floodfill(25,98,BLACK);
setfillstyle(1,GREEN);
circle(25,125,10);
floodfill(25,125,WHITE);
gotoxy(8,9);
printf("START");
line(24,140,24,370);
line(25,140,25,370);
line(0,370,getmaxx(),370);
line(0,377,getmaxx(),377);
getch();
}
45
Output:
46
47
48
Output:
49
24. WAP to show a rotating fan controlled with speed like if pressed 1 then
speed is slow, on 2 it increases, on 3 it increases further and on 0 it gets
off.
Solution:
#include<graphics.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void fan();
void fan1();
void fan2();
void fan3();
void main()
{
int gd=DETECT,gm,mx,my,x,y,i,j,ch;
char ch1;
initgraph(&gd,&gm,"C:\\TC\\BGI");
printf("0:OFF 1:LOW SPEED 2:SPEED 3:HIGH SPEED 4:EXIT");
printf("\n");
printf("Enter your choice: ");
scanf("%d",&ch);
switch(ch)
{
case 0:
fan();
break;
case 1:
fan1();
break;
case 2:
fan2();
break;
case 3:
fan3();
break;
case 4:
exit(1);
}
getch();
}
50
void fan()
{
int mx,my;
mx=getmaxx()/2;
my=getmaxy()/2;
circle(mx,my,5);
pieslice(mx,my,0,20,80);
pieslice(mx,my,230,250,80);
pieslice(mx,my,110,130,80);
if(kbhit())
{
main();
}
}
void fan1()
{
int mx,my,i,j;
mx=getmaxx()/2;
my=getmaxy()/2;
circle(mx,my,5);
cleardevice();
for(i=0;i<10;i++)
{
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,0,20,80);
pieslice(mx,my,230,250,80);
pieslice(mx,my,110,130,80);
}
delay(1000);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,20,40,80);
pieslice(mx,my,250,270,80);
pieslice(mx,my,130,150,80);
}
delay(1000);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,40,60,80);
pieslice(mx,my,270,290,80);
pieslice(mx,my,150,170,80);
}
delay(1000);
cleardevice();
for(j=0;j<=10;j++)
Ajit kumar Roy
51
{
pieslice(mx,my,60,80,80);
pieslice(mx,my,290,310,80);
pieslice(mx,my,170,190,80);
}
delay(1000);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,80,100,80);
pieslice(mx,my,310,330,80);
pieslice(mx,my,190,210,80);
}
if(kbhit())
{
main();
}
delay(1000);
}
}
void fan2()
{
int mx,my,i,j;
mx=getmaxx()/2;
my=getmaxy()/2;
circle(mx,my,5);
cleardevice();
for(i=0;i<10;i++)
{
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,0,20,80);
pieslice(mx,my,230,250,80);
pieslice(mx,my,110,130,80);
}
delay(500);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,20,40,80);
pieslice(mx,my,250,270,80);
pieslice(mx,my,130,150,80);
}
delay(500);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,40,60,80);
Ajit kumar Roy
52
pieslice(mx,my,270,290,80);
pieslice(mx,my,150,170,80);
}
delay(500);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,60,80,80);
pieslice(mx,my,290,310,80);
pieslice(mx,my,170,190,80);
}
delay(500);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,80,100,80);
pieslice(mx,my,310,330,80);
pieslice(mx,my,190,210,80);
}
if(kbhit())
{
main();
}
delay(500);
cleardevice();
}
}
void fan3()
{
int mx,my,i,j;
mx=getmaxx()/2;
my=getmaxy()/2;
circle(mx,my,5);
cleardevice();
for(i=0;i<10;i++)
{
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,0,20,80);
pieslice(mx,my,230,250,80);
pieslice(mx,my,110,130,80);
}
delay(50);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,20,40,80);
pieslice(mx,my,250,270,80);
Ajit kumar Roy
53
pieslice(mx,my,130,150,80);
}
delay(50);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,40,60,80);
pieslice(mx,my,270,290,80);
pieslice(mx,my,150,170,80);
}
delay(50);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,60,80,80);
pieslice(mx,my,290,310,80);
pieslice(mx,my,170,190,80);
}
delay(50);
cleardevice();
for(j=0;j<=10;j++)
{
pieslice(mx,my,80,100,80);
pieslice(mx,my,310,330,80);
pieslice(mx,my,190,210,80);
}
if(kbhit())
{
main();
}
delay(50);
cleardevice();
}
}
Output:
54
55
56
case 3:
{
printf("Enter the angle from rotation transformation:\n ");
scanf("%f",&th);
printf("The Rotation angle is: \n");
m=(-1)*(x1*cos(th)-y1*sin(th));
n=(x1*sin(th)+y1*cos(th));
o=(-1)*(x2*cos(th)-y2*cos(th));
p=x2*sin(th)+y2*cos(th);
rectangle(m,n,o,p);
break;
}
case 4:
{
exit(1);
break;
}
default:
printf("INVALID") ;
}
getch();
}
Output:
57
58
59
circle(30,260,10);
floodfill(25,260,RED);
while(!kbhit);
getch();
}
void pitch()
{
setcolor(WHITE);
rectangle(20,150,30,300);
rectangle(35,150,45,300);
rectangle(50,150,60,300);
rectangle(15,300,65,310);
}
void pitch2()
{
setcolor(WHITE);
rectangle(20,290,170,300);
rectangle(35,150,45,300);
rectangle(50,150,60,300);
rectangle(15,300,65,310);
}
Output:
60
61
62
Output:
63
64
65
Output:
66
67
Output:
68
69
70
else
{
cleardevice();
printf("Line is partially: ");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2);
getch();
if((start[2]==0)&&(start[3]==1))
{
x1=x1+(ymin-y1)/m;
y1=ymin;
}
if((end[2]==0)&&(end[3]==1))
{
x2=x2+(ymin-y2)/m;
y2=ymin;
}
if((start[2]==1)&&(start[3]==0))
{
x1=x1+(ymax-y1)/m;
y1=ymax;
}
if((end[2]==1)&&(end[3]==0))
{
x2=x2+(ymax-y2)/m;
y2=ymax;
}
if((start[1]==0)&&(start[0]==1))
{
y1=y1+m*(xmin-x1);
x1=xmin;
}
if((end[1]==0)&&(end[0]==1))
{
y2=y2+m*(xmin-x2);
x2=xmin;
}
if((start[1]==1)&&(start[0]==0))
{
y1=y1+m*(xmax-x1);
x1=xmax;
}
if((end[1]==1)&&(end[0]==0))
{
y2=y2+m*(xmax-x2);
x2=xmax;
}
clrscr();
Ajit kumar Roy
71
cleardevice();
printf("After clipping: \n");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2);
getch();
}
}
else
{
clrscr();
cleardevice();
printf("After clipping: \n");
rectangle(xmin,ymin,xmax,ymax);
}
getch();
closegraph();
}
Output:
72
73