0% found this document useful (0 votes)
101 views9 pages

Worksheet 2 (18BCA1083)

The document describes an experiment to implement Bresenham's line drawing algorithm to draw lines between two endpoints. It provides two problems - to draw a line from (9,18) to (14,22) and from (20,10) to (30,18). The code provided implements the line drawing algorithm and calculates the points between the given endpoints. The output and learning outcomes are also included.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views9 pages

Worksheet 2 (18BCA1083)

The document describes an experiment to implement Bresenham's line drawing algorithm to draw lines between two endpoints. It provides two problems - to draw a line from (9,18) to (14,22) and from (20,10) to (30,18). The code provided implements the line drawing algorithm and calculates the points between the given endpoints. The output and learning outcomes are also included.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Experiment:Line Drawing using Bresenham’s line Algorithm

Student Name: Deepanshu UID: 18BCA1083


Branch: BCA Section/Group: Section-A (group 1(G1))
Semester: 5th Date of Performance:30-AUG-2020
Subject Name: Computer Graphics Subject Code:CAP-306

Aim: To implement Bresenham’s line drawing algorithm for drawing a line segment between two given
endpoints A (x1, y2) and B(x2, y2).

Task to be done:

Write a program to draw a line using Bresenham line Algorithm with endpoint (x1, y1) and (x2, y2).

Problem-01:

Write a program to draw a line with starting coordinates (9, 18) and ending coordinates (14, 22).

Problem-02:

Write a program to draw a line with starting coordinates (20, 10) and ending coordinates (30, 18).

3) Code for experiment/practical:


#include<stdio.h>

#include<graphics.h>

void drawline(int x0, int y0, int x1, int y1)

int dx, dy, p, x, y;

dx=x1-x0;
dy=y1-y0;

x=x0;

y=y0;

p=2*dy-dx;

while(x<x1)

if(p>=0)

putpixel(x,y,7);

y=y+1;

p=p+2*dy-2*dx;

else

putpixel(x,y,7);

p=p+2*dy;}

x=x+1;

int main()

int gdriver=DETECT, gmode, error, x0, y0, x1, y1;

initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi");

printf("Enter co-ordinates of first point: ");

scanf("%d%d", &x0, &y0);

printf("Enter co-ordinates of second point: ");

scanf("%d%d", &x1, &y1);

drawline(x0, y0, x1, y1);

return 0;
}

Calculate the points between the starting coordinates (9, 18) and ending coordinates (14, 22).
 

Solution-
 
Given-

 Starting coordinates = (X0, Y0) = (9, 18)


 Ending coordinates = (Xn, Yn) = (14, 22)
 
Step-01:
 
Calculate ΔX and ΔY from the given input.

 ΔX = Xn – X0 = 14 – 9 = 5
 ΔY =Yn – Y0 = 22 – 18 = 4
 
Step-02:
 
Calculate the decision parameter.
Pk
= 2ΔY – ΔX
=2x4–5
=3
So, decision parameter Pk = 3
 
Step-03:
 
As Pk >= 0, so case-02 is satisfied.
 
Thus,

 Pk+1 = Pk + 2ΔY – 2ΔX = 3 + (2 x 4) – (2 x 5) = 1


 Xk+1 = Xk + 1 = 9 + 1 = 10
 Yk+1 = Yk + 1 = 18 + 1 = 19
 
Similarly, Step-03 is executed until the end point is reached or number of iterations equals to 4 times.
(Number of iterations = ΔX – 1 = 5 – 1 = 4)
 

Pk Pk+1 Xk+1 Yk+1

9 18

3 1 10 19

1 -1 11 20

-1 7 12 20

7 5 13 21

5 3 14 22

Problem-02:
 
Calculate the points between the starting coordinates (20, 10) and ending coordinates (30, 18).
 

Solution-
 
Given-

 Starting coordinates = (X0, Y0) = (20, 10)


 Ending coordinates = (Xn, Yn) = (30, 18)
 
Step-01:
 
Calculate ΔX and ΔY from the given input.

 ΔX = Xn – X0 = 30 – 20 = 10
 ΔY =Yn – Y0 = 18 – 10 = 8
 
Step-02:
 
Calculate the decision parameter.
Pk
= 2ΔY – ΔX
= 2 x 8 – 10
=6
So, decision parameter Pk = 6
 
Step-03:
 
As Pk >= 0, so case-02 is satisfied.
 
Thus,

 Pk+1 = Pk + 2ΔY – 2ΔX = 6 + (2 x 8) – (2 x 10) = 2


 Xk+1 = Xk + 1 = 20 + 1 = 21
 Yk+1 = Yk + 1 = 10 + 1 = 11
 
Similarly, Step-03 is executed until the end point is reached or number of iterations equals to 9 times.
(Number of iterations = ΔX – 1 = 10 – 1 = 9)
 

Pk Pk+1 Xk+1 Yk+1

20 10

6 2 21 11

2 -2 22 12

-2 14 23 12

14 10 24 13

10 6 25 14

6 2 26 15

2 -2 27 16

-2 14 28 16

14 10 29 17

10 6 30 18

 
4) Output
5) Learning outcomes (What I have learnt):

1.how to solve the problem of coordinate in Computer graphic

2.how to write the program using Bresenham line Algorithm

3.how to reduce the complexity of program

You might also like