Computer Graphics Practical File

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 30

ADESH INSTITUTE OF TECHNOLOGY

GHARUAN

Computer Graphics

Bachelor of Computer Applications

Submitted to: Submitted by:


Mrs. Harmandeep Kaur Ashish Osten

Roll No. – 1732193


6th semester
this page is intentionally left blank
INDEX: -

S.No. Program Page No.

1. Write a C++ program to draw a line. 1-2

Write a C++ program to draw a line using DDA (Digital


2. 3-6
Differential Analyzer) Algorithm.

Write a C++ program to draw a line using Bresenham’s


3. 7-10
Line Algorithm.

4. Write a C++ program to draw a Rectangle. 11-12

5. Write a C++ program to translate (move) a line. 13-16

6. Write a C++ program to translate a Rectangle. 17-20

7. Write a C++ program to Scale an Object. 21-24

8. Write a C++ program to put a Pixel on Screen. 25-26


OUTPUT: - Values inserted on the Console Application

OUTPUT: - A line drawn on BGI (Borland Graphics Interface)


Program 1 - Write a C++ program to draw a line.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm; //graphics driver and graphics mode
int x1, y1, x2, y2; // co-ordinates
initgraph(&gd, &gm, "");
cout << "Program to draw a line" << endl
<< endl;
cout << "Enter the starting co-ordinates" << endl;
cout << "x1 = ";
cin >> x1;
cout << "y1 = ";
cin >> y1;
cout << "Enter the ending co-ordinates" << endl;
cout << "x2 = ";
cin >> x2;
cout << "y2 = ";
cin >> y2;
line(x1, y1, x2, y2);
getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A line drawn using Digital Differential Analyzer Algorithm


Program 2 - Write a C++ program to draw a line using DDA (Digital Differential Analyzer)
Algorithm.

#include <iostream>
#include <graphics.h>
#include <math.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int x1, y1, x2, y2; // co-ordinates
int dx, dy, length, i, x, y, x_min, y_min; //for using maths functions
initgraph(&gd, &gm, "");
cout << "Program to draw a line using DDA Algorithm" << endl
<< endl;
cout << "Enter the starting co-ordinates" << endl;
cout << "x1 = ";
cin >> x1;
cout << "y1 = ";
cin >> y1;
cout << "Enter the ending co-ordinates" << endl;
cout << "x2 = ";
cin >> x2;
cout << "y2 = ";
cin >> y2;
dx = x2 - x1;
dy = y2 - y1;
this page is intentionally left blank
if (abs(dx) > abs(dy))
length = abs(dx);
else
length = abs(dy);

x_min = dx / length;
y_min = dy / length;
x = x1;
y = y1;
putpixel(x, y, WHITE);
for (i = 1; i <= length; i++)
{
putpixel(x, y, WHITE);
x = x + x_min;
y = y + y_min;
}
getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A line drawn using Bresenham’s Line Algorithm


Program 3 - Write a C++ program to draw a line using Bresenham’s Line Algorithm.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int x1, y1, x2, y2;
int dx, dy, i, x, y;
initgraph(&gd, &gm, "");
cout << "Program to draw a line using Bresenham’s Line Algorithm" << endl
<< endl;
cout << "Enter the starting co-ordinates" << endl;
cout << "x1 = ";
cin >> x1;
cout << "y1 = ";
cin >> y1;
cout << "Enter the ending co-ordinates" << endl;
cout << "x2 = ";
cin >> x2;
cout << "y2 = ";
cin >> y2;

dx = x2 - x1;
dy = y2 - y1;
this page is intentionally left blank
i = 2 * dy - dx;

x = x1, y = y1;
putpixel(x, y, 15);
while (x <= x2)
{
if (i < 0)
{
x = x + 1;
i = i + 2 * dy;
}
else
{
x = x + 1;
y = y + 1;
i = i + 2 * (dy - dx);
}
putpixel(x, y, 15);
}
getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A rectangle drawn on BGI (Borland Graphics Interface)


Program 4 - Write a C++ program to draw a Rectangle.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int r_left, r_top, r_bottom, r_right;
initgraph(&gd, &gm, "");
cout << "Program to draw a Rectangle" << endl
<< endl;
cout << "Enter the co-ordinates" << endl;
cout << "left = ";
cin >> r_left;
cout << "top = ";
cin >> r_top;
cout << "and" << endl;
cout << "bottom = ";
cin >> r_bottom;
cout << "right = ";
cin >> r_right;

rectangle(r_left, r_top, r_bottom, r_right); //dimensions of rectangle


getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A line translated(transformed) on BGI (Borland Graphics Interface)


Program 5 - Write a C++ program to translate (move) a line.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int x1, y1, x2, y2; //original co-ordinates
int dx1, dx2; // new co-ordinates
initgraph(&gd, &gm, "");
cout << "Program to translate a line" << endl
<< endl;
cout << "Enter the starting co-ordinates" << endl;
cout << "x1 = ";
cin >> x1;
cout << "y1 = ";
cin >> y1;
cout << "Enter the ending co-ordinates" << endl;
cout << "x2 = ";
cin >> x2;
cout << "y2 = ";
cin >> y2;
line(x1, y1, x2, y2); // original line

cout << "Enter the new starting co-ordinates" << endl;


cout << "dx1 = ";
this page is intentionally left blank
cin >> dx1;
cout << "dx2 = ";
cin >> dx2;
setcolor(3);
line(x1 + dx1, y1, x2 + dx2, y2); //new line

getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A rectangle translated(transformed) on BGI (Borland Graphics Interface)


Program 6 - Write a C++ program to translate a Rectangle.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int r_left, r_top, r_bottom, r_right;
int x, y; // translating co-ordinates
initgraph(&gd, &gm, "");
cout << "Program to translate a Rectangle" << endl
<< endl;
cout << "Enter the co-ordinates" << endl;
cout << "left = ";
cin >> r_left;
cout << "top = ";
cin >> r_top;
cout << "and" << endl;
cout << "bottom = ";
cin >> r_bottom;
cout << "right = ";
cin >> r_right;

rectangle(r_left, r_top, r_bottom, r_right); //dimensions of rectangle

cout << "Enter the new co-ordinates" << endl;


this page is intentionally left blank
cout << "x = ";
cin >> x;
cout << "y = ";
cin >> y;
setcolor(3);
rectangle(r_left + x, r_top + y, r_bottom + x, r_right + y);
getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A rectangle scaled(transformed) on BGI (Borland Graphics Interface)


Program 7 - Write a C++ program to Scale an Object.
#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
int x1 = 100, y1 = 100, x2 = 200, y2 = 200; //original co-ordinates
int fx, fy; // fixed points
int sx, sy; // scaling factors
int xa, ya, xb, yb; // new co-ordinates
initgraph(&gd, &gm, "");
cout << "Program to Scale an Object" << endl
<< endl;
rectangle(x1, y1, x2, y2);

cout << "Enter the new fixed points" << endl;


cout << "fixed point for x = ";
cin >> fx;
cout << "fixed point for y = ";
cin >> fy;

cout << "Enter the scaling factors" << endl;


cout << "scaling factor for x = ";
cin >> sx;
cout << "scaling factor for y = ";
cin >> sy;
this page is intentionally left blank
xa = (x1 * sx) + (fx * (1 - sx));
ya = (y1 * sy) + (fy * (1 - sy));
xb = (x2 * sx) + (fx * (1 - sx));
yb = (y2 * sy) + (fy * (1 - sy));

setcolor(3);
rectangle(xa, ya, xb, yb);
getch();
closegraph();
}
OUTPUT: - Values inserted on the Console Application

OUTPUT: - A pixel illustrated on BGI (Borland Graphics Interface)


Program 8 - Write a C++ program to put a Pixel on Screen.

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
cout << "Program to put a Pixel on Screen" << endl
<< endl;
putpixel(50, 50, WHITE);
getch();
closegraph();
}
A Practical File by Ashish Osten

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy