Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video."— Presentation transcript:

1 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

2 Line Based on slope-intercept algorithm from algebra: y = mx + b Simple approach: increment x, solve for y Floating point arithmetic required

3 DDA algorithm DDA = Digital Differential Analyser –finite differences Treat line as parametric equation in t : Start point - End point -

4 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

5 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; }

6 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.

7 Bresenham’s line drawing algorithm –Line drawing algorithm comparisons –Circle drawing algorithms A simple technique The mid-point circle algorithm Jack Bresenham

8 Concept Move across the x axis in unit intervals and at each step choose between two different y coordinates 234 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 (x k, y k ) (x k +1, y k ) (x k +1, y k +1)

9 The y coordinate on the mathematical line at x k +1 is: Concept: The Bresenham Line Algorithm At sample position x k +1 the vertical separations from the mathematical line are labelled d upper and d lower y ykyk y k+1 xk+1xk+1 d lower d upp er

10 So, d upper and d lower 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…)

11 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…)

12 So, a decision parameter p k for the k th step along a line is given by: The sign of the decision parameter p k is the same as that of d lower – d upper If p k is negative, then we choose the lower pixel, otherwise we choose the upper pixel Deriving Algorithm (cont…)

13 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 p k from this we get: Deriving The Bresenham Line Algorithm (cont…)

14 But, x k+1 is the same as x k +1 so: where y k+1 - y k is either 0 or 1 depending on the sign of p k The first decision parameter p0 is evaluated at (x0, y0) is given as: Deriving The Bresenham Line Algorithm (cont…)

15 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 ( x 0, y 0 ) 2.Plot the point ( x 0, y 0 ) 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 x k along the line, starting at k = 0, perform the following test. If p k < 0, the next point to plot is (x k +1, y k ) and:

16 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 ( x k +1, y k +1 ) and: 5.Repeat step 4 ( Δx – 1) times

17 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 p 0 : –p0 = 2Δy – Δx = 6

18 Bresenham Example (cont…) kpkpk (x k+1,y k+1 ) 01234567890123456789


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

Similar presentations


Ads by Google