Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random...
-
Upload
samson-jordan -
Category
Documents
-
view
249 -
download
0
Transcript of Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random...
![Page 1: Introduction Computer Graphics & Its application Types of computer graphics Graphic display : random Scan & Raster Scan display Frame buffer and video.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/1.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/9.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/10.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/11.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/12.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/13.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/14.jpg)
• 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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/17.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022081503/56649ef35503460f94c04f6e/html5/thumbnails/18.jpg)
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