# (Refer Slide Time: 1:21)

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Introduction to Computer Graphics Dr. Prem Kalra Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 5 Polygon Clipping and Polygon Scan Conversion We have been basically talking about clipping. So we covered point clipping and then we talked about line clipping. Today we are going to talk about polygon clipping. Here are the different kinds of polygons. (Refer Slide Time: 1:21) Basically we are looking at simple polygon. What I mean by simple polygon is it is basically a planar set of a ordered points V 1 V 2 V 3 up to V n and I do not want lines to cross for the polygon and also I do not want any hole in that polygon. This is what a simple polygon is. Here you see the example. So this is an example of a simple polygon. It could be convex, it could be non convex. So the restriction we are posing here is we should not have a line crossing, just the way it is happening here V 1 V 2 V 3 V 4 and there is a crossing of the line and there should not be any hole here. So given that I consider a simple polygon and the reason I am interested in a polygon because they are area primitives where I can define primitives filling area. One thing which we were talking about is that can we extend the notion of clipping for the line to the polygon. If you just consider the polygon to be defined as collection of lines each of the edge being aligned then all I need to do is process the line of the polygon one by one and do the line clipping. Let us see whether we can extend these ideas.

2 (Refer Slide Time: 3:30) So just to further illustrate the difference between convex and non convex that we have earlier also seen there is this convex polygon where if I join two points within the region the line is inside that region that is what I mean by convex polygon. Whereas a non convex or concave sometimes referred as if I join two points which are inside the polygon the line joining these two points may not be inside the polygon. This is non convex. Now let us try to see what is the restriction for the time being we want to impose on the given polygon we are interested in to clip and the window against which we are going to perform this clipping. As far as the given polygon is concerned we are taking a simple polygon, convex or non convex whereas there is a restriction to the window which we want to use for clipping. (Refer Slide Time: 4:52)

3 So we would actually work on a window which is convex. So, we have this restriction then the window must be convex but the polygon could be convex or not. Here is the example, we have this window, just for simplicity I have consider here the window to be just a rectangular region which is convex and here you see a polygon which is non convex whereas here I have the polygon which is the triangle which is a convex problem. So what are we trying to do as a process of clipping is, we are interested in getting this portion of the polygon and this portion of the polygon inside the window and reject or discard the rest. Similarly I am interested in getting this part of the polygon to be declared inside the window and chop of the rest. That is what I mean by clipping polygon against this way. (Refer Slide Time: 6:10) That is basically what is shown here. After the process of clipping I get this as the result for this polygon. Similarly for the second case where I considered triangle to be clipped the result is this. Now looking back to what we have done in the case of line clipping can you suggest an algorithm to do this? Remember one thing, for instance Cyrus Beck Algorithm or Liang Barsky Algorithm basically got an assumption that it is a convex window. The non convexity of the window was sort of a special case which was also treated in a similar way so we always had the clipping against the convex region. So, what this convexity gives you is some sort of a notion of each edge of the convex window to be a sort of a clipper deciding whether it is inside or on one side of that edge or not. That is what I mean by saying a clipper is. May be we can apply a similar concept where the edge of the window acts like a clipper and then we perform that operation of clipping considering each edge of the window. Therefore each edge acts as a clipper.

4 (Refer Slide Time: 8:36) I consider a non convex polygon to be clipped against this rectangular window. This is an example. Now what I do is I consider one of the edges of the window to be a clipper. Clipper means I apply the clipping against that edge and I have this notion defined to the edge that which is inside and which is outside in a very similar fashion as we have seen in the case of a line. (Refer Slide Time: 9:13) So I define this clipper which is the right edge. Now what I do is I basically take this polygon use this as my clipper and discard whatever is outside this. So this portion is the outside portion of the clipper and this portion is the inside portion of the clipper. So

5 basically I chop of, just slice it by this clipper the polygon. And this is what I get as a result. This is my resulting polygon after having clipped against this edge. Now I can apply this operation in succession for all edges from the window. (Refer Slide Time: 10:19) I take that as an input whatever was given after the first clipper and apply against this edge now. So this chops of this part of the polygon and so on. (Refer Slide Time: 10:36) That chops of the left part of the polygon and this is the top edge.

6 (Refer Slide Time: 10:43) Considering each edge of the window as a clipper at the end of this full operation I get this polygon which is the clipped polygon that I need. (Refer Slide Time: 11:11) Approach: Here is what I am trying to do as an algorithm. I consider polygon to be clipped given as series of points, ordered points taken in one particular order as V 1 V 2 to V n and a polygon edge is basically a pair defined between V i V i plus 1 and since polygon is a closed figure I need to consider the last as to be V n V 1 so there is a rap around from this sequence I have as points.

7 Now process all the polygon edges in succession against a window edge. So what it does basically is, if I consider V 1 V 2.V n as the input polygon and the respective pairs of these V i s defining the edges what I get is a new set of points defined by W 1 W 2 to W m which gives me the new polygon. Then I repeat this process against the next window edge and when I have exhausted all the window edges whatever I get is my resulting polygon. So what are we basically doing here is we are trying to output certain number of points as a process of clipping each edge of the polygon against a window edge. In fact what we are doing is basically create a new set of points which are referred here as W s, they are just the new set of points. So, if we try to see, actually there happens four cases and before I talk about those four cases which would output 0. or 1. or 2. (Refer Slide Time: 13:43) After performing a clipping of an edge of the polygon against the window edge actually happened to recover by four cases. So, if I do a case analysis of those four cases I would know what points are going to be given as the output which will then be included in my series of points of W s to define a new polygon. Therefore I consider s which is given as V i to be the starting vertex of the polygon edge. And this s could have been previously analyzed, this could have been analyzed in the previous iteration but for the current edge I am considering s as V i. And p is the next point for the edge pair Vi plus 1 which is the ending point or ending vertex of the intersection. now I define i which may result from the polygon edge and window edge intersection and there could be an intersection of this polygon edge with the window edge and as a result I may get point of intersection which I define as i. So this i should not be confused with the subscript i here and this is a point of intersection. Then what I am going to have is this point w j which I will declare as the output from the case analysis I am going to perform. And at the end the collection of these Ws will form the polygon of my interest. Now let us try to see each of these four cases which would in turn give me either no output zero point or one output or two outputs that is two points for the output.

8 (Refer Slide Time: 16:22) Case one: the polygon is basically as a cyclic kind of a shape. It is a closed shape. Let us say I have a case where the polygon edge is entirely inside the window edge. So this is my window edge drawn in blue and I have this notion of what is inside and what is outside with respect to this window edge and now considering this edge which is given as S P that is my polygon edge in question, we are having S as the start point and P as the end point and this edge could actually be related to the rest of the polygon in some fashion. Now what we are going to look at is just analyze these two end points S and P for this particular polygon edge. So, if I observe that the polygon edge is entirely on inside on the side of the window edge which is the situation then I output P so P is the next vertex of the resulting polygon meaning I assign P to the W j and I increment j in the series of the points which I am going to use for defining my output polygon. In this case I have only one output given as P when both these points are inside the window edge.

9 (Refer Slide Time: 18:28) The next case is, when I see that polygon edge crosses window edge going out that is going from inside to outside. So this is the scenario I have this edge S P which is going from inside to outside. So clearly when I cross the window edge it is going to have an intersection with the window edge i find out this point of intersection i and that is what my output is. I output i therefore I assign this i to the W j and I increment j. So in this case also I get one output for the point which is i. (Refer Slide Time: 19:38) Now the next case is the polygon edge is entirely outside the window edge so S and P happen to be outside the window edge. Then I give no output that means no point is given

10 as output for the polygon. So the last case left is this when the polygon edge crosses the window edge going in. That means I have this edge from outside to inside. That means S is outside the window edge and P is inside the window edge. (Refer Slide Time: 20:07) Therefore clearly I have a point of intersection of this edge with the window edge which is given by i again. Then in this case I would output this i and P. These are two outputs now I have. I output i and P as the two vertices of the polygon. That basically means assigning i to W j, P to W j plus 1 and j is incremented by 2. Example: When I make this polygon as a collection of my vertices Wis then how do you I give the sequence of these points. I always have a definition of my polygon I go in an order basically. It is not just a collection of sorted points. If I go in an order of these points I get a polygon. This algorithm is called as Sutherland Hodgman algorithm where we consider the window to be convex and polygon to be any simple polygon.

11 (Refer Slide Time: 22:23) Example: here is an example where I consider a non convex polygon S 1 S 2 S 3 S 4 S 5 these are the vertices of the polygon. And again I consider the window to be a rectangular region. Remember this has no restriction to be rectangular it could be any convex region because the way we are performing the operation of inside outside does not really restrict us to have a rectangular region as long as we have the region to be convex. Let us say S 1 is the point to start that is the first point I have in that definition of my polygon and all we are trying to do here is do this clipping for each of the window edges and we analyze these four cases and we output the points appropriately to be considered as the polygon for the next iteration. Given this as an input polygon let us see how to proceed. (Refer Slide Time: 23:44)

12 This is my first clipper the top edge of the window, this is my first clipping. What will happen is that if I consider from S 1 to S 2 I go from outside to totally inside because I am not considering with respect to the window I am basically considering with respect to the edge. Therefore the outside inside operation is with respect to the window edge. I go from S 1 to S 2 which are both inside. So when I have inside to inside I output t which will be S 2 then I go from S 2 to S 3 again both happened to be inside the window edge then I output S 3, I go from S 3 to S 4 I go from inside to outside and I find a point of intersection which is i 1 so I output i1, when I go from S 4 to S 5 both happened to be outside the window edge I output nothing and then I go from S 5 to S 1 I find the point of intersection is i 2 so I output i 2 and S 1. (Refer Slide Time: 25:23) Therefore what I get as the resulting polygon is this. I just change the S to t now and basically change the suffixes. This becomes t 1 t 2 t 3 t 4 t 5. So this becomes my polygon for the next window edge to be considered. Now what happens is with respect to this window edge all the points are inside. So if I start from t 1 to t 2 I will output t 2, t 2 to t 3 I will output t 3 and so on.

13 (Refer Slide Time: 26:07) Therefore that is what I will get as a sequence u 1 so again I change from t to u and change the respective suffixes. Therefore it is u 1 to u 2, u 3 and u 4 and u 5. Again if I consider this window edge all these points are inside therefore nothing really changes with respect to these vertices except the numbering or enumeration that changes. So when I say u 1 to u 2 then u 2 will be given as the output so I will start from here. (Refer Slide Time: 26:49) Now I get the output as V 1 V 2 V 3 V 4 V 5. Now this is my last window edge. I start from V 1 to V 2 which is from inside to outside, I find the point of intersection i 3 so when I go from inside to outside I basically output i 3, when I go from V 2 to V 3 both are outside I

14 output nothing, I go from V 3 to V 4 which is from outside to inside I find this point of intersection as i 4 and I output i 4 and V 4 and when I go from V 4 to V 5 again I go from inside to outside, I find this point of intersection i 5 and I output i 5, when I go from V 5 to V 1 I go from outside to inside find the point of intersection as i6 and I output i 6 and V 1 and that completes the entire set of points. So, at the end of this I get my polygon as this W 1 W 2 W 3 W 4 W 5 W 6 and that is my resulting clipped polygon. (Refer Slide Time: 28:22) The algorithm is fairly straight forward. And the idea which we actually used in the case of line clipping is being reused. Now one may say that this is not really a good polygon for various reasons because if I consider one single polygon where I have these two points laying on the same line it is sort of degenerative. Particularly it can cause problem when I do the shading of the polygon. So there is also a modification to this algorithm wherein instead of having output given as this as a single polygon sequence of W points they have the notion of fragmenting the polygons wherein actually you get this as one polygon and this as another polygon so there is a fragmentation. But that fragmentation actually requires much more book keeping in order being able to define these fragments right. We will look at that algorithm when we talk about hidden surface elimination because that is in conjunction with hidden surface elimination and the algorithm is given by Weiler and Athreton to modify this Sutherland and Hodgman algorithm where you do not have degenerate polygons. Now that since we have been talking about polygon let us try to see how we draw these polygons. We have basically looked at drawing algorithms for lines, drawing algorithm for circle, ellipse but we have not really looked at drawing of a polygon. one may say that polygon drawing is basically a line drawing because if I just define a polygon to be just a set of connected points through these edges then all I am saying is that consider each

15 edge and do a plot of each edge using line drawing. But I then do not get the feeling of that polygon to be an area because I need to fill that with some color or with some other display attributes. So you would like to see some sort of a drawing algorithm where I can fill these polygons with some color. Just a collection of line drawing doing the polygon edges for drawing is actually also known as some sort of a wire frame display of the polygon. Here we are trying to address the polygon display using filling. This is known as the scan conversion of the polygon. Each of the pixels of the polygon is basically getting converted into some value. (Refer Slide Time: 32:32) Polygon scan conversion is basically for drawing polygons using filling. If I consider a simplest polygon which is triangular, here you see the examples of filled polygons, this is a filled triangle. Now if I am able to design an algorithm for filling a triangle then I can actually use that even for that other polygons because I can decompose a polygon into set of triangles irrespective whether the polygon is convex or non convex as shown here then I can just replicate my triangle filling algorithm if I am interested only in the filling algorithm for a triangle.

16 (Refer Slide Time: 33:37) Here is the pixel which is inside the triangle and if I figure out that this pixel is inside then I can assign the desired attributes of color or any other display attribute to this pixel. So the question I am basically asking is, whether this pixel is inside that triangle or not? In other words it is a matter of doing a containment test of points or the pixels. So whatever is contained in the triangle I just give the necessary attributes of this plane. Now the question of whether a point is inside or outside a triangle can be well taken care of by what we have seen earlier. If I define the normal to these edges of the triangle then it is a matter of inside outside of these edges and if I get the answer that with respect to all the edges it turns out to be inside then I know that the point is inside the triangle. Therefore I can give the color to that pixel and if I find that point it is outside the triangle I just discard it. I cannot start with all pixels in this screen. You basically bound your area by considering the minmax of the points of the triangle so create a virtual window around it and do the scan conversion of that window.

17 (Refer Slide Time: 36:06) Basically we are looking at some sort of a extend which is defined around that triangle and we sort of also exploit the fact that scans are horizontal so we go one scan line by one scan line. We sort of exploit this property which is in some sense a coherence along the scan line because if I find that the two extremes of that scan line happen to be inside the triangle then all the points which are spanned with that scan line can be colored. in turn it means that if I find out an extent here which I define as xl for a particular scan line, here when I refer to scan line it is a basically a horizontal line with respect to the window which I am trying to scan convert around this triangle. So, for this particular scan line I find out these xl and xr which could be just the intersection of this scan line with respect to this edge and this edge and then once I find out this xl and xr then all the points here can be colored. This is particularly useful when I just need to assign one color to all the points. Another thing is that I can cover one scan line like this. So the next question is I go to the next scan line, next scan line means I go vertically down. From here I come to this scan line. One may say that find out the point of intersection explicitly with respect to this edge and the other edge and do the same thing but that could turn out to be an expensive thing. Therefore what we can do is we can exploit the knowledge of the edge slopes. The edge slope can actually give me the next point here. Remember we have actually used that knowledge while doing line drawing Bresenham s or midpoint algorithm. Therefore I actually get the next point for the next scan line using the slope of this edge. Similarly I can get this point using the slope of this edge. And once I have these two extremes the rest is done. The only thing is that this particular point I will have to change the edge. Here I was considering this edge, now it is basically between this edge and this edge. But that is also simple. All I am doing is going scan by scan finding out the two

18 extremes in the horizontal span and fill them and for the next horizontal span I use the information from edge slopes. How do we get the first scan line? That is the initial computation you need to do. The best thing is, you get a window around this which is like finding out the minmax of this area which gives you the window so you start at the top of the window. One thing for the general polygon is to use this triangle filling algorithm by decomposing that polygon into various triangles and apply to each of those triangles. But can we design an algorithm for a general or simple polygon or convex or non convex? The question which we are trying to answer is always the containment. (Refer Slide Time: 41:29) Let me pose the problem here: Now I have this polygon which is a non convex polygon and this is the current scan line in question and all I am trying to answer is what are the pixels intercepted by this scan line or inside this polygon. The moment I answer that question I have my filling algorithm. Now given this scenario can I devise some algorithm saying that what are the points which are inside the polygon and what are the points outside the polygon? Let us say I am able to find these points of intersection. These points of intersection of the scan line with the edges are known to me. Therefore what we observe here is that this part is to be filled, this part is not to be filled, and this part is to be filled. Basically it is actually a parity check. What we are saying is that, if I find the segments as we usually call them, this is one segment, this is another segment, this is another segment and so on. So if I do a parity check then all I am saying is that if the segment is odd fill it, if the segment is even do not fill it. This principle even holds when I have a convex filling because I am going to get only one that is odd.

19 (Refer Slide Time: 44:26) But does it work always? What happens here? If I just apply the same parity check then I am going to display only this part and not this. (Refer Slide Time: 44:58) Now what happens here? I go back to this and I actually give you a modification to the algorithm that in such situations you duplicate this point. Duplicate this point means I have basically virtually added a segment there. Then what will happen is this will become one, this is second right there but I do not draw that and this becomes third and I draw that. So what I am suggesting is that whenever you have an intersection with a vertex for the polygon you duplicate it. But the question is, does it work always? What happens

20 here? This is duplicated I do not plot at this point but I plot this, this is not inside, it does not work. There has to be some topological issue here. It is not just that I duplicate the vertex. So, one way I can look at is that if the vertex in question is either a minimum or a maximum vertex of the incident edges on that point then I duplicate. Here this vertex is a minimum vertex, minimum in terms of when I say y of that is minimum with respect to the two instant edges at this point that is this and this. So here I duplicate. Here what happens is that there are this edge and this edge so for this case it is the minimum and for this case it is the maximum therefore I do not duplicate it. So when it intersects to a vertex of the polygon I need to do this extra checking. But the rest of it is just the same. I just label these segments to be drawn or not to be drawn. Now there is another way to look at the filling problem. What are we trying to do basically when we fill the polygon is, we basically look at the pixels which are inside a polygon and if I can in some way grow that point using the neighborhood information around that point and ask that question to the neighbors and propagate that then also I will do the filling. The propagation is basically constrained by the boundary edges of the region. (Refer Slide Time: 49:07) Therefore here is an example where I have this polygon and the black points are showing the boundary of the polygon. I get this seed which is plotted here as the pink point. So once I establish that this point is inside then I can consider the neighborhood of this point so neighborhood could be in different ways, here I am talking about the left and the neighbor the bottom and the top neighbor or the low and the up neighbor. Therefore you call this as four neighbors of the point and you can also consider eight neighbors if you consider the diagonal pixels around. So all I am trying to do is get these neighbors and ask this question whether it is inside or outside and then in turn get the neighbors for these points and just keep growing. In image processing you must have seen a similar thing.

21 It is a pixel aggregation or a region growing which is used for segmentation because there what we are doing is this boundary is actually given by certain features of the image or the segment and within that boundary everything is homogenous. So those pixel attributes within that segment are very similar. All I am trying to do there is find out the connected pixel to the seed and keep growing that region till I hit the boundary. Again we can actually use certain information from the pixel itself. For instance, if I find out this pixel is inside the explicit check which I will do for the inside outside I may actually restrict to only part of the boundaries not all the edges of the boundary. So I can actually add more information to the point knowing that where this point is. So computationally it may be more costly than what we have done earlier. But this shows you a different way of thinking. You are actually doing a filling but in a different thought.

### Polygon Scan Conversion and Z-Buffering

Polygon Scan Conversion and Z-Buffering Rasterization Rasterization takes shapes like triangles and determines which pixels to fill. 2 Filling Polygons First approach:. Polygon Scan-Conversion Rasterize

### Polygon Clipping and Filling Week 3, Lecture 5

CS 430/536 Computer Graphics I Polygon Clipping and Filling Week 3, Lecture 5 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science

### CS 325 Introduction to Computer Graphics

CS 325 Introduction to Computer Graphics 01 / 29 / 2014 Instructor: Michael Eckmann Today s Topics Comments/Questions? Bresenham-Line drawing algorithm Midpoint-circle drawing algorithm Ellipse drawing

### Digital Image Processing. Prof. P. K. Biswas. Department of Electronics & Electrical Communication Engineering

Digital Image Processing Prof. P. K. Biswas Department of Electronics & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture - 28 Colour Image Processing - III Hello,

### Chapter 14: Production Possibility Frontiers

Chapter 14: Production Possibility Frontiers 14.1: Introduction In chapter 8 we considered the allocation of a given amount of goods in society. We saw that the final allocation depends upon the initial

### 2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION

2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION A world-coordinate area selected for display is called a window. An area on a display device to which a window is mapped is called a viewport. The window

### Lines That Pass Through Regions

: Student Outcomes Given two points in the coordinate plane and a rectangular or triangular region, students determine whether the line through those points meets the region, and if it does, they describe

### Polygon Scan Conversion & Shading

3D Rendering Pipeline (for direct illumination) Polygon Scan Conversion & Shading Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2004 3D Primitives 3D Modeling Coordinates Modeling Transformation

### Shortest Path Algorithms

Shortest Path Algorithms Jaehyun Park CS 97SI Stanford University June 29, 2015 Outline Cross Product Convex Hull Problem Sweep Line Algorithm Intersecting Half-planes Notes on Binary/Ternary Search Cross

### Clipping polygons the Sutherland-Hodgman algorithm

Clipping polygons would seem to be quite complex. Clipping polygons would seem to be quite complex. single Clipping polygons would seem to be quite complex. single Clipping polygons would seem to be quite

### Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 7 Transformations in 2-D

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 7 Transformations in 2-D Welcome everybody. We continue the discussion on 2D

### Finite Element Analysis Prof. Dr. B. N. Rao Department of Civil Engineering Indian Institute of Technology, Madras. Lecture - 28

Finite Element Analysis Prof. Dr. B. N. Rao Department of Civil Engineering Indian Institute of Technology, Madras Lecture - 28 In the earlier lectures, we have seen formulation for 3 node linear triangular

### (Refer Slide Time: 00:01:23 min)

Computer Aided Design Prof. Anoop Chalwa Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 02 Input Output Devices, Raster Graphics Today we will be talking about

### B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

B2.53-R3: COMPUTER GRAPHICS NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the TEAR-OFF ANSWER

### COLORED GRAPHS AND THEIR PROPERTIES

COLORED GRAPHS AND THEIR PROPERTIES BEN STEVENS 1. Introduction This paper is concerned with the upper bound on the chromatic number for graphs of maximum vertex degree under three different sets of coloring

### 1 Point Inclusion in a Polygon

Comp 163: Computational Geometry Tufts University, Spring 2005 Professor Diane Souvaine Scribe: Ryan Coleman Point Inclusion and Processing Simple Polygons into Monotone Regions 1 Point Inclusion in a

### Digital VLSI System Design Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras.

Digital VLSI System Design Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 20 Example of System Design using Sequential Circuits (Continued) Slide

### Week 2 Polygon Triangulation

Week 2 Polygon Triangulation What is a polygon? Last week A polygonal chain is a connected series of line segments A closed polygonal chain is a polygonal chain, such that there is also a line segment

### Managerial Economics Prof. Trupti Mishra S.J.M. School of Management Indian Institute of Technology, Bombay. Lecture - 13 Consumer Behaviour (Contd )

(Refer Slide Time: 00:28) Managerial Economics Prof. Trupti Mishra S.J.M. School of Management Indian Institute of Technology, Bombay Lecture - 13 Consumer Behaviour (Contd ) We will continue our discussion

### Intro to Polygons. Objectives

Intro to Polygons Objectives Introduce polygon and terminology Polygon data structures Filling polygons on the 2D image plane Polygons in 3D 2 1 Polygons Multi-sided planar element composed of edges and

### Computational Geometry

Motivation Motivation Polygons and visibility Visibility in polygons Triangulation Proof of the Art gallery theorem Two points in a simple polygon can see each other if their connecting line segment is

### Chapter 5. Drawing polygons: loops and arrays in PostScript

Chapter 5. Drawing polygons: loops and arrays in PostScript We begin by learning how to draw regular polygons, and then consider the problem of drawing arbitrary polygons. Both will use loops, and the

### Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Scan-Line Fill Can also fill by maintaining a data structure of all intersections of polygons with scan lines Sort by scan line Fill each span vertex order generated by vertex list desired order Scan-Line

### Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 4 CRT Display Devices

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 4 CRT Display Devices Hello everybody, and welcome back to the lecture on

### Fundamentals of Operations Research Prof.G. Srinivasan Department of Management Studies Lecture No. # 03 Indian Institute of Technology, Madras

Fundamentals of Operations Research Prof.G. Srinivasan Department of Management Studies Lecture No. # 03 Indian Institute of Technology, Madras Linear Programming solutions - Graphical and Algebraic Methods

### G.H. Raisoni College of Engineering, Nagpur. Department of Information Technology

Practical List 1) WAP to implement line generation using DDA algorithm 2) WAP to implement line using Bresenham s line generation algorithm. 3) WAP to generate circle using circle generation algorithm

### Planar Tree Transformation: Results and Counterexample

Planar Tree Transformation: Results and Counterexample Selim G Akl, Kamrul Islam, and Henk Meijer School of Computing, Queen s University Kingston, Ontario, Canada K7L 3N6 Abstract We consider the problem

### Managerial Economics Prof. Trupti Mishra S.J.M School of Management Indian Institute of Technology, Bombay. Lecture - 14 Elasticity of Supply

Managerial Economics Prof. Trupti Mishra S.J.M School of Management Indian Institute of Technology, Bombay Lecture - 14 Elasticity of Supply We will continue our discussion today, on few more concept of

### CS 543: Computer Graphics Lecture 9 (Part I): Raster Graphics: Drawing Lines. Emmanuel Agu

CS 543: Computer Graphics Lecture 9 (Part I): Raster Graphics: Drawing Lines Emmanuel Agu 2D Graphics Pipeline Clipping Object World Coordinates Applying world window Object subset window to viewport mapping

### Electronic Design Automation Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Electronic Design Automation Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 10 Synthesis: Part 3 I have talked about two-level

### Monotone Partitioning. Polygon Partitioning. Monotone polygons. Monotone polygons. Monotone Partitioning. ! Define monotonicity

Monotone Partitioning! Define monotonicity Polygon Partitioning Monotone Partitioning! Triangulate monotone polygons in linear time! Partition a polygon into monotone pieces Monotone polygons! Definition

### Tessellations. A tessellation is created when a shape is repeated over and over again to cover the plane without any overlaps or gaps.

Tessellations Katherine Sheu A tessellation is created when a shape is repeated over and over again to cover the plane without any overlaps or gaps. 1. The picture below can be extended to a tessellation

### LABORATORY MANUAL. CS-4508 Computer Graphics & Multimedia. July 2012 Onwards. Devi Ahilya Vishwavidyalaya. School of Computer Science & IT

LABORATORY MANUAL CS-4508 Computer Graphics & Multimedia July 2012 Onwards Devi Ahilya Vishwavidyalaya School of Computer Science & IT We make things happen... Producing world class IT Professionals Since

### Digital Image Processing. Prof. P.K. Biswas. Department of Electronics & Electrical Communication Engineering

Digital Image Processing Prof. P.K. Biswas Department of Electronics & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture - 27 Colour Image Processing II Hello, welcome

### CS 248 Assignment 2 Polygon Scan Conversion. CS248 Presented by Josh Wiseman Stanford University October 19, 2005

CS 248 Assignment 2 Polygon Scan Conversion CS248 Presented by Josh Wiseman Stanford University October 19, 2005 Announcements First thing: read README.animgui animgui.. It should tell you everything you

### Computational Geometry

Motivation 1 Motivation Polygons and visibility Visibility in polygons Triangulation Proof of the Art gallery theorem Two points in a simple polygon can see each other if their connecting line segment

### Introduction to Voronoi Diagrams

C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 13 Date: March 22, 1993 Scribe: Scott S. Snibbe 1 Introduction Introduction to Voronoi Diagrams This lecture introduces

### Managerial Economics Prof. Trupti Mishra S.J.M School of Management Indian Institute of Technology, Bombay. Lecture 9 Theory of Demand (Contd.

Managerial Economics Prof. Trupti Mishra S.J.M School of Management Indian Institute of Technology, Bombay Lecture 9 Theory of Demand (Contd.) Welcome to the second session of module two; module two talks

### Line and Polygon Clipping. Foley & Van Dam, Chapter 3

Line and Polygon Clipping Foley & Van Dam, Chapter 3 Topics Viewing Transformation Pipeline in 2D Line and polygon clipping Brute force analytic solution Cohen-Sutherland Line Clipping Algorithm Cyrus-Beck

### We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

CHAPTER 4 CURVES 4.1 Introduction In order to understand the significance of curves, we should look into the types of model representations that are used in geometric modeling. Curves play a very significant

### CS268: Geometric Algorithms Handout #5 Design and Analysis Original Handout #15 Stanford University Tuesday, 25 February 1992

CS268: Geometric Algorithms Handout #5 Design and Analysis Original Handout #15 Stanford University Tuesday, 25 February 1992 Original Lecture #6: 28 January 1991 Topics: Triangulating Simple Polygons

### Using 3 D SketchUp Design Software. Building Blocks Tools

Using 3 D SketchUp Design Software Building Blocks Tools Introduction Google s SketchUp is an easy to use drawing program capable of building 3 dimensional (or 3 D) objects (SketchUp also does 2 D easily).

### ME 111: Engineering Drawing

ME 111: Engineering Drawing Lecture # 14 (10/10/2011) Development of Surfaces http://www.iitg.ernet.in/arindam.dey/me111.htm http://www.iitg.ernet.in/rkbc/me111.htm http://shilloi.iitg.ernet.in/~psr/ Indian

### Lecture 6: Polygon rendering and OpenGL

Lecture 6: Polygon rendering and OpenGL 3-Dimensional Objects Bounded by Planar Surfaces (Facets) Y 4 8 Z 5 6 1 2 3 7 X NUMERICAL TOPOLOGICAL DATA DATA Points Lines Faces 1. [0,0,0] 1. 1>>2 1,2,4,4 2.

### My name is Erin Catto and I m a programmer at Blizzard Entertainment.

Hello everyone! Thank you for coming to my tutorial today. My name is Erin Catto and I m a programmer at Blizzard Entertainment. Today I m going to talk about computing distance. 1 Suppose we have a pair

### Raycasting polygonal models

Chapter 9 Raycasting polygonal models A polygonal model is one in which the geometry is defined by a set of polygons, each specified by the D coordinates of their vertices. For example, the cube to the

### (Refer Slide Time 1.50)

Discrete Mathematical Structures Dr. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Module -2 Lecture #11 Induction Today we shall consider proof

### Homework Exam 1, Geometric Algorithms, 2016

Homework Exam 1, Geometric Algorithms, 2016 1. (3 points) Let P be a convex polyhedron in 3-dimensional space. The boundary of P is represented as a DCEL, storing the incidence relationships between the

### Session 9 Solids. congruent regular polygon vertex. cross section edge face net Platonic solid polyhedron

Key Terms for This Session Session 9 Solids Previously Introduced congruent regular polygon vertex New in This Session cross section edge face net Platonic solid polyhedron Introduction In this session,

### Section P.9 Notes Page 1 P.9 Linear Inequalities and Absolute Value Inequalities

Section P.9 Notes Page P.9 Linear Inequalities and Absolute Value Inequalities Sometimes the answer to certain math problems is not just a single answer. Sometimes a range of answers might be the answer.

### Reflection and Refraction

Equipment Reflection and Refraction Acrylic block set, plane-concave-convex universal mirror, cork board, cork board stand, pins, flashlight, protractor, ruler, mirror worksheet, rectangular block worksheet,

### (Refer Slide Time: 00:00:56 min)

Numerical Methods and Computation Prof. S.R.K. Iyengar Department of Mathematics Indian Institute of Technology, Delhi Lecture No # 3 Solution of Nonlinear Algebraic Equations (Continued) (Refer Slide

### Computational Geometry

Smallest enclosing circles and more 1 Facility location Introduction Facility location Properties of the smallest enclosing circle Given a set of houses and farms in an isolated area. Can we place a helicopter

### Tutorial 1: The Freehand Tools

UNC Charlotte Tutorial 1: The Freehand Tools In this tutorial you ll learn how to draw and construct geometric figures using Sketchpad s freehand construction tools. You ll also learn how to undo your

### Geometry Notes PERIMETER AND AREA

Perimeter and Area Page 1 of 17 PERIMETER AND AREA Objectives: After completing this section, you should be able to do the following: Calculate the area of given geometric figures. Calculate the perimeter

### Scalar Visualization

Scalar Visualization 4-1 Motivation Visualizing scalar data is frequently encountered in science, engineering, and medicine, but also in daily life. Recalling from earlier, scalar datasets, or scalar fields,

### (Refer Slide Time: 2:14)

(Refer Slide Time: 2:14) Digital Circuits and Systems Prof. S. Srinivasan Professor Department of Electrical Engineering Indian Institute of Technology, Madras Lecture # 24 Design of Synchronous Sequential

### Lecture 11: Graphical Models for Inference

Lecture 11: Graphical Models for Inference So far we have seen two graphical models that are used for inference - the Bayesian network and the Join tree. These two both represent the same joint probability

### with "a", "b" and "c" representing real numbers, and "a" is not equal to zero.

3.1 SOLVING QUADRATIC EQUATIONS: * A QUADRATIC is a polynomial whose highest exponent is. * The "standard form" of a quadratic equation is: ax + bx + c = 0 with "a", "b" and "c" representing real numbers,

### (Refer Slide Time: 00:01:16 min)

Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control

### GRAPHING (2 weeks) Main Underlying Questions: 1. How do you graph points?

GRAPHING (2 weeks) The Rectangular Coordinate System 1. Plot ordered pairs of numbers on the rectangular coordinate system 2. Graph paired data to create a scatter diagram 1. How do you graph points? 2.

### 3 Drawing 2D shapes. Launch form Z.

3 Drawing 2D shapes Launch form Z. If you have followed our instructions to this point, five icons will be displayed in the upper left corner of your screen. You can tear the three shown below off, to

### Business Statistics & Presentation of Data BASIC MATHEMATHICS MATH0101

Business Statistics & Presentation of Data BASIC MATHEMATHICS MATH0101 1 STATISTICS??? Numerical facts eg. the number of people living in a certain town, or the number of cars using a traffic route each

7.5 SYSTEMS OF INEQUALITIES Copyright Cengage Learning. All rights reserved. What You Should Learn Sketch the graphs of inequalities in two variables. Solve systems of inequalities. Use systems of inequalities

### CK-12 Geometry: Midpoints and Bisectors

CK-12 Geometry: Midpoints and Bisectors Learning Objectives Identify the midpoint of line segments. Identify the bisector of a line segment. Understand and the Angle Bisector Postulate. Review Queue Answer

### Table of content. 1.0 Point on face Divide Align selected entities Perpendicular line Face on plane 9

1 O O 1 b i t P r o 1001bit Pro Users Guide Table of content by Goh Chun Hee, www.1001bit.com Page 1.0 Point on face 3 2.0 Divide 5 3.0 Align selected entities 7 4.0 Perpendicular line 8 5.0 Face on plane

### The Ubiquitous Bresenham Algorithm as a Basis for Graphics Interpolation Processes

The Ubiquitous Bresenham Algorithm as a Basis for Graphics Interpolation Processes Steve Cunningham California State University Stanislaus rsc@csustan.edu Abstract The Bresenham line algorithm is a classic

### SUPPLEMENT TO CHAPTER

SUPPLEMENT TO CHAPTER 6 Linear Programming SUPPLEMENT OUTLINE Introduction and Linear Programming Model, 2 Graphical Solution Method, 5 Computer Solutions, 14 Sensitivity Analysis, 17 Key Terms, 22 Solved

### Computational Geometry [csci 3250]

Computational Geometry [csci 3250] Laura Toma Bowdoin College Polygon Triangulation Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon

### BASIC ELECTRONICS PROF. T.S. NATARAJAN DEPT OF PHYSICS IIT MADRAS

BASIC ELECTRONICS PROF. T.S. NATARAJAN DEPT OF PHYSICS IIT MADRAS LECTURE-11 TRANSISTOR BIASING (Common Emitter Circuits, Fixed Bias, Collector to base Bias) Hello everybody! In our series of lectures

### Illumination Models III: Polygon Shading

Illumination Models III: Polygon Shading Shading algorithms apply lighting models to polygons, through interpolation from the vertices. OpenGL uses the present state to compute vertex colors, using the

### Fixplot Instruction Manual. (data plotting program)

Fixplot Instruction Manual (data plotting program) MANUAL VERSION2 2004 1 1. Introduction The Fixplot program is a component program of Eyenal that allows the user to plot eye position data collected with

### 52. Explain interrupt scheme for retrieving input data. Also explain any one algorithm for input device handling. 53. Explain the process of 3-D

Computer Graphics 1. Derive the equation for the intercept form of the line. 2. Explain the frame buffer, point and pixels. 3. Describe the Digital Differential Analyzer (DDA) for line drawing. 4. Explain

### Triangulation. Is this always possible for any simple polygon? If not, which polygons are triangulable.

Triangulation Partition polygon P into non-overlapping triangles using diagonals only. Is this always possible for any simple polygon? If not, which polygons are triangulable. Does the number of triangles

### Practical Calculation of Polygonal Areas

Practical alculation of Polygonal reas Tom avis tomrdavis@earthlink.net http://www.geometer.org/mathcircles January 30, 006 bstract In this paper we will consider practical methods to find the area of

### Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 02 Lecture No. # 05 Run-time Environments-Part 3 and Local Optimizations

### Calculating Areas Section 6.1

A B I L E N E C H R I S T I A N U N I V E R S I T Y Department of Mathematics Calculating Areas Section 6.1 Dr. John Ehrke Department of Mathematics Fall 2012 Measuring Area By Slicing We first defined

### Arrangements And Duality

Arrangements And Duality 3.1 Introduction 3 Point configurations are tbe most basic structure we study in computational geometry. But what about configurations of more complicated shapes? For example,

### MATH STUDENT BOOK. 8th Grade Unit 6

MATH STUDENT BOOK 8th Grade Unit 6 Unit 6 Measurement Math 806 Measurement Introduction 3 1. Angle Measures and Circles 5 Classify and Measure Angles 5 Perpendicular and Parallel Lines, Part 1 12 Perpendicular

### Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture-2 CRT Display Devices

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture-2 CRT Display Devices Welcome back everybody to the video lecture on Computer

### Existence of Simple Tours of Imprecise Points

Existence of Simple Tours of Imprecise Points Maarten Löffler Department of Information and Computing Sciences, Utrecht University Technical Report UU-CS-007-00 www.cs.uu.nl ISSN: 09-7 Existence of Simple

### Chapter 5: Sequential Circuits (LATCHES)

Chapter 5: Sequential Circuits (LATCHES) Latches We focuses on sequential circuits, where we add memory to the hardware that we ve already seen Our schedule will be very similar to before: We first show

### Critical Slip Surface Search Methods in SLIDE

Critical Slip Surface Search Methods in SLIDE Rocscience Inc. 1989-2002 Introduction Since the release of SLIDE, we at Rocscience have been very impressed at the range of problems to which SLIDE has been

### 24: Polygon Partition - Faster Triangulations

24: Polygon Partition - Faster Triangulations CS 473u - Algorithms - Spring 2005 April 15, 2005 1 Previous lecture We described triangulations of simple polygons. See Figure 1 for an example of a polygon

### Computer Graphics: Visualisation Lecture 3. Taku Komura Institute for Perception, Action & Behaviour

Computer Graphics: Visualisation Lecture 3 Taku Komura tkomura@inf.ed.ac.uk Institute for Perception, Action & Behaviour Taku Komura Computer Graphics & VTK 1 Last lecture... Visualisation can be greatly

### Polygon Triangulation

If triangles had a god, they would give him three sides. Charles Louis de Secondat Montesquie (1721) Down with Euclid! Death to triangles! Jean Dieudonné (1959) G Polygon Triangulation G.1 Introduction

### 5. GRAPHS ON SURFACES

. GRPHS ON SURCS.. Graphs graph, by itself, is a combinatorial object rather than a topological one. But when we relate a graph to a surface through the process of embedding we move into the realm of topology.

Date Period Unit 0: Quadratic Relations DAY TOPIC Distance and Midpoint Formulas; Completing the Square Parabolas Writing the Equation 3 Parabolas Graphs 4 Circles 5 Exploring Conic Sections video This

### (Refer Slide Time: 5: 46)

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 3 Section II CRT Display Devices Hello and welcome back to the lecture on

### Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

10.9 Systems Of Inequalities Copyright Cengage Learning. All rights reserved. Objectives Graphing an Inequality Systems of Inequalities Systems of Linear Inequalities Application: Feasible Regions 2 Graphing

### ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite

ALGEBRA Pupils should be taught to: Generate and describe sequences As outcomes, Year 7 pupils should, for example: Use, read and write, spelling correctly: sequence, term, nth term, consecutive, rule,

### diffy boxes (iterations of the ducci four number game) 1

diffy boxes (iterations of the ducci four number game) 1 Peter Trapa September 27, 2006 Begin at the beginning and go on till you come to the end: then stop. Lewis Carroll Consider the following game.

### Oasis montaj Map Editing and CAD Tools

Oasis montaj Map Editing and CAD Tools This How-To Guide introduces you to the basic map editing and CAD functions in Oasis montaj. The procedures are designed to show you how you can use these tools to

### Scan Conversion of Filled Primitives Rectangles Polygons. Many concepts are easy in continuous space - Difficult in discrete space

Walters@buffalo.edu CSE 480/580 Lecture 7 Slide 1 2D Primitives I Point-plotting (Scan Conversion) Lines Circles Ellipses Scan Conversion of Filled Primitives Rectangles Polygons Clipping In graphics must

### Graph Theory Lecture 3: Sum of Degrees Formulas, Planar Graphs, and Euler s Theorem Spring 2014 Morgan Schreffler Office: POT 902

Graph Theory Lecture 3: Sum of Degrees Formulas, Planar Graphs, and Euler s Theorem Spring 2014 Morgan Schreffler Office: POT 902 http://www.ms.uky.edu/~mschreffler Different Graphs, Similar Properties

### Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Questions 2007 INSTRUCTIONS: Answer all questions. Spend approximately 1 minute per mark. Question 1 30 Marks Total