Computer Graphics Lab Assignment
Computer Graphics Lab Assignment
Submitted By:
Name: Anirudha Shivarkar
Branch: Information Technology
Semester: 6th
Roll No: 19118901
Q1. Write a program to draw the pixel (x,y) and display the color
of the pixel.
Ans: C++ Code:
1. #include <graphics.h>
2. #include <stdio.h>
3.
4. int main()
5. {
6. int gd = DETECT, gm, color;
7. initgraph(&gd, &gm, "");
8.
9. // putpixel function
10. putpixel(45, 60, BLUE);
11. putpixel(20, 100, WHITE);
12. putpixel(200, 100, LIGHTBLUE);
13. putpixel(150, 100, LIGHTGREEN);
14. putpixel(200, 50, YELLOW);
15. putpixel(120, 70, RED);
16.
17. getch();
18. closegraph();
19. return 0;
20. }
21.
Output:
Q2. Write a program to draw hut and smiley using various
graphics function.
Ans: C++ code to draw Hut:
1. #include<iostream>
2. #include<conio.h>
3. #include<graphics.h>
4.
5. int main() {
6. int gd=DETECT,gm,i;
7. initgraph(&gd,&gm,(char*)"");
8. rectangle(100,150,200,280);
9. rectangle(200,150,350,280);
10. rectangle(120,230,170,280);
11.
12. line(150,100,100,150);
13. line(150,100,200,150);
14. line(150,100,320,100);
15. line(320,100,350,150);
16.
17. getch();
18. closegraph();
19. return 0;
20. }
21.
Output:
C++ Code to draw smiley:
1. #include <conio.h>
2. #include <dos.h>
3. #include <graphics.h>
4. #include <stdio.h>
5.
6. int main()
7. {
8. int gr = DETECT, gm;
9. initgraph(&gr, &gm, (char*)"");
10.
11.
12. setcolor(YELLOW);
13.
14. circle(300, 100, 40);
15. setfillstyle(SOLID_FILL, YELLOW);
16. floodfill(300, 100, YELLOW);
17.
18.
19. setcolor(BLACK);
20. setfillstyle(SOLID_FILL, BLACK);
21.
22. // creating eyes
23. fillellipse(310, 85, 2, 6);
24. fillellipse(290, 85, 2, 6);
25.
26. // creating mouth
27. ellipse(300, 100, 205, 335, 20, 9);
28. ellipse(300, 100, 205, 335, 20, 10);
29. ellipse(300, 100, 205, 335, 20, 11);
30.
31. getch();
32. closegraph();
33.
34. return 0;
35. }
36.
Output:
Q3. Write a program to implement DDA line drawing algorithm.
Ans: Code to implement DDA algorithm:
1. #include<graphics.h>
2. #include<conio.h>
3. #include<stdio.h>
4. int main()
5. {
6. int gd = DETECT ,gm, i;
7. float x, y,dx,dy,steps;
8. int x0, x1, y0, y1;
9. initgraph(&gd, &gm, (char*)"");
10. setbkcolor(WHITE);
11. x0 = 100 , y0 = 200, x1 = 500, y1 = 300;
12. dx = (float)(x1 - x0);
13. dy = (float)(y1 - y0);
14. if(dx>=dy)
15. {
16. steps = dx;
17. }
18. else
19. {
20. steps = dy;
21. }
22. dx = dx/steps;
23. dy = dy/steps;
24. x = x0;
25. y = y0;
26. i = 1;
27. while(i<= steps)
28. {
29. putpixel(x, y, RED);
30. x += dx;
31. y += dy;
32. i=i+1;
33. }
34. getch();
35. closegraph();
36. return 0;
37. }
38.
Output:
Q4. Write a program to implement Bresenham’s line drawing
algorithm.
Ans: Code to implement Bresenham’s line drawing algorithm:
1. #include <iostream>
2. #include <conio.h>
3. #include <graphics.h>
4. #include<dos.h>
5. using namespace std;
6. void bsline(int x,int y,int x2,int y2)
7. {
8. int dx,dy,p;
9. dx=x2-x;
10. dy=y2-y;
11. p = 2 * (dy) - (dx);
12. while(x <= x2)
13. {
14. if(p < 0)
15. {
16. x=x+1;
17. y=y;
18. p = p + 2 * (dy);
19. }
20. else
21. {
22. x=x+1;
23. y=y+1;
24. p = p + 2 * (dy - dx);
25. }
26. putpixel(x,y,RED);
27. delay(10);
28. }
29. }
30. int main()
31. {
32. int gd=DETECT,gm;
33. initgraph(&gd,&gm,(char*)"");
34. int x1,x2,y1,y2;
35. cout<<"Enter the x1,y1,x2,y2 values : ";
36. cin>>x1>>y1>>x2>>y2;
37. bsline(x1,y1,x2,y2);
38. getch();
39. closegraph();
40. return 0;
41. }
42.
Output:
Output: