Top Banner
Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video Controller Points & Lines , line Drawing Algorithm Circle Generation algorithm Mid point circle generation algorithm Parallel version of these algorithm Point & Line Generation
18

Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Jan 03, 2016

Download

Documents

Samson Jordan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Introduction

Computer Graphics & Its application

Types of computer graphics

Graphic display : random Scan & Raster Scan display

Frame buffer and video Controller

Points & Lines , line Drawing Algorithm

Circle Generation algorithm

Mid point circle generation algorithm

Parallel version of these algorithm

Point & Line Generation

Page 2: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Line

Based on slope-intercept algorithm from algebra:

y = mx + b

Simple approach:

increment x, solve for y

Floating point arithmetic required

Page 3: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

DDA algorithm

• DDA = Digital Differential Analyser– finite differences

• Treat line as parametric equation in t :

)()(

)()(

121

121

yytyty

xxtxtx

),(

),(

22

11

yx

yxStart point -End point -

Page 4: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

DDA Algorithm

• Start at t = 0

• At each step, increment t by dt

• Choose appropriate value for dt

• Ensure no pixels are missed:

– Implies: and

• Set dt to maximum of dx and dy

)()(

)()(

121

121

yytyty

xxtxtx

dt

dyyy

dt

dxxx

oldnew

oldnew

1dt

dx1

dt

dy

Page 5: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

DDA algorithm

line(int x1, int y1, int x2, int y2)

{float x,y;int dx = x2-x1, dy = y2-y1;int n = max(abs(dx),abs(dy));float dt = n, dxdt = dx/dt, dydt = dy/dt;

x = x1;y = y1;while( n-- ) {

point(round(x),round(y));x += dxdt;y += dydt;}

}

Page 6: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

DDA algo.

• Start. • Declare variables x,y,x1,y1,x2,y2,k,dx,dy,s,xi,yi and also declare

gdriver=DETECT,gmode. • Initialise the graphic mode with the path location in TC folder. • Input the two line end-points and store the left end-points in (x1,y1). • Load (x1,y1) into the frame buffer;that is,plot the first point.put x=x1,y=y1. • Calculate dx=x2-x1 and dy=y2-y1. • If abs(dx) > abs(dy), do s=abs(dx). • Otherwise s= abs(dy). • Then xi=dx/s and yi=dy/s. • Start from k=0 and continuing till k<s,the points will be • x=x+xi. • y=y+yi. • Place pixels using putpixel at points (x,y) in specified colour. • Close Graph. • Stop.

Page 7: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Bresenham’s line drawing algorithm

Bresenham’s line drawing algorithm

– Line drawing algorithm comparisons

– Circle drawing algorithms

• A simple technique

• The mid-point circle algorithm

Jack Bresenham

Page 8: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Concept

• Move across the x axis in unit intervals and at each step choose between two different y coordinates

2 3 4 5

2

4

3

5• For example, from position

(2, 3) we have to choose between (3, 3) and (3, 4)

• We would like the point that is closer to the original line

(xk, yk)

(xk+1, yk)

(xk+1, yk+1)

Page 9: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• The y coordinate on the mathematical line at xk+1 is:

Concept: The Bresenham Line Algorithm

• At sample position xk+1 the vertical separations from the mathematical line are labelled dupper and dlower

bxmy k )1(

yyk

yk+1

xk+1

dlower

duppe

r

Page 10: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• So, dupper and dlower are given as follows:

• and:

• We can use these to make a simple decision about which pixel is closer to the mathematical line

Deriving The Bresenham Line Algorithm (cont…)

klower yyd

kk ybxm )1(

yyd kupper )1(

bxmy kk )1(1

Page 11: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• This simple decision is based on the difference between the two pixel positions:

• Let’s substitute m with ∆y/∆x where ∆x and ∆y are the differences between the end-points:

Deriving The Bresenham Line Algorithm (cont…)

122)1(2 byxmdd kkupperlower

)122)1(2()(

byxx

yxddx kkupperlower

)12(222 bxyyxxy kk

cyxxy kk 22

Page 12: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• So, a decision parameter pk for the kth step along a line is given by:

• The sign of the decision parameter pk is the same as that of

dlower – dupper

• If pk is negative, then we choose the lower pixel, otherwise we choose the upper pixel

Deriving Algorithm (cont…)

cyxxy

ddxp

kk

upperlowerk

22

)(

Page 13: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• Remember coordinate changes occur along the x axis in unit steps so we can do everything with integer calculations

• At step k+1 the decision parameter is given as:

• Subtracting pk from this we get:

Deriving The Bresenham Line Algorithm (cont…)

cyxxyp kkk 111 22

)(2)(2 111 kkkkkk yyxxxypp

Page 14: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

• But, xk+1 is the same as xk+1 so:

• where yk+1 - yk is either 0 or 1 depending on

the sign of pk

• The first decision parameter p0 is evaluated at (x0, y0) is given as:

Deriving The Bresenham Line Algorithm (cont…)

)(22 11 kkkk yyxypp

xyp 20

Page 15: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

The Bresenham Line Algorithm

• BRESENHAM’S LINE DRAWING ALGORITHM(for |m| < 1.0)

1. Input the two line end-points, storing the left end-point in (x0, y0)

2. Plot the point (x0, y0)

3. Calculate the constants Δx, Δy, 2Δy, and (2Δy - 2Δx) and get the first value for the decision parameter as:

4. At each xk along the line, starting at k = 0, perform the

following test. If pk < 0, the next point to plot is

(xk+1, yk) and:

xyp 20

ypp kk 21

Page 16: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

The Bresenham Line Algorithm (cont…)

• The algorithm and derivation above assumes slopes are less than 1. for other slopes we need to adjust the algorithm slightly

• Otherwise, the next point to plot is (xk+1, yk+1)

and:

5. Repeat step 4 (Δx – 1) times

xypp kk 221

Page 17: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Example

• Let’s have a go at this• Let’s plot the line from (20, 10) to (30, 18)• First off calculate all of the constants:

– Δx: 10

– Δy: 8

– 2Δy: 16

– 2Δy - 2Δx: -4

• Calculate the initial decision parameter p0:

– p0 = 2Δy – Δx = 6

Page 18: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.

Bresenham Example (cont…)

17

16

15

14

13

12

11

10

18

292726252423222120 28 30

k pk (xk+1,yk+1)

0

1

2

3

4

5

6

7

8

9