Transcript Document
Computer Graphics Scan Conversion Lines Faculty of Physical and Basic Education Computer Dep. 2012-2013 Lecturer: Azhee W. MD. Line-Drawing Algorithms Line Equations Digital Differential analyzer(DDA) algorithm Bresenham’s Line Algorithm University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 2 Line Equations University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 3 Line Equations Example Q) Find the equation of the line that passes through the points (1, 2) and (-2, 4). if I have two points on a straight line, I can always find the slope Now I have the slope and two points. I know I can find the equation (by solving first for "b“) University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 4 Line Equations (2) For any x interval δx along a line, we can compute y interval δy δy = m . δx Or compute x interval δx from y interval δy University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 5 DDA algorithm University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 6 DDA algorithm University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 7 Algorithm DDA University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 8 Algorithm DDA(2) University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 9 Example 1 Consider the line from (0,0)to (6,6), use DDA to rasterize the line. Let us perform some initial calculations. Initially x1=0 y1=0 x2=6 y2=6 So our first step would be to evaluate the length length =abs(x2-x1) 6-0= 6 length =abs(y2-y1) 6-0= 6 Had (x2-x1) been equal (y2-y1): dx=x2-x1/length 1 and dy=y2-y1/length 1 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 10 Example 1 X=x1+0.5*sign(dx) 0+0.5*sign(1) x=0.5 sign(1)return 1 similar to y0.5 i plot 1 x y 0.5 0.5 2 (0,0) 1.5 1.5 3 (1,1) 2.5 2.5 4 (2,2) 3.5 3.5 5 (3,3) 4.5 4.5 6 (4,4) 5.5 5.5 7 (5,5) 6.5 6.5 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 11 Example 2 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 12 Example 2 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 13 Example 4 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 14 Home work Draw the line from (0,0) to (-8,-4) by using DDA algorithm? Draw the line from (0,-3) to ( 8,4) by using DDA algorithm? University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 15 Bersenham’s Line Algorithm Bersenham’s line algorithm is an efficient method for scan converting straight lines , in that it use only integer addition ,subtraction and multiplication by 2 and floating point operations. The lines drawn are of superior quality as compared to ADD method A2 Ai Bi A1 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 16 Bersenham’s Line Algorithm(2) we will keep on talking about Ai and Bi throughout the algorithm , Bersenham’s algorithm identifies the decision or test variable: di=Bi-Ai When di<0 the closet pixel in the raster will be the pixel below the true line. Conversely ,when di>=0 the pixel above the true line is closet. Initially set di=2dy-dx dx=x2-x1 dy=y2-y1 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 17 Bersenham’s Line Algorithm(3) thereafter if di>=0 the x and y are incremented Xi+1 =Xi+1 Yi+1 =Yi+1 di+1=di+2(dy-dx) And if di<0 then only x incremented Xi+1=Xi+1 di+1=di+2dy University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 18 Example one Q) Indicate which raster locations would be chosen by Bersenham’s algorithm when scan converting a line from screen co-ordinates (1,1) to (8,5). Solution First the straight values (initial values) must be found dx=x2-x1 dy= y2-y1 8-1= 7 5-1= 4 Therefore d=2dy-dx 2*4-7= 1 initial values Apply the above procedure again and again would get us the required solution X Y d 1 1 1 2 2 -5 3 2 3 4 3 -3 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 19 Example 2 Q) Indicate which raster locations would be chosen by Bersenham’s algorithm when scan converting a line from screen co-ordinates (-2,3) to (8,10). University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 20 Homework Draw the following lines using DDA (from left to right): (-1, 2) and (7, 8) (1, -3) and (6, 5) (from right to left) (6, 2) and (-4, -3) (9, 4) and (2, -5) University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 21 Homework 2 Q) Indicate which raster locations would be chosen by Bersenham’s algorithm when scan converting a line from screen co-ordinates (0,-3) to (8,4). University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 22 References Donald Hearn, M. Pauline Baker, Computer Graphics with OpenGL, 3rd edition, Prentice Hall, 2004 Chapter 3 University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013 23