Application of sutherland hodgman polygon clipping, Computer Graphics

Assignment Help:

For good understanding of the application of the rules specified above see the following figure, where the shaded region demonstrates the clipped polygon.

801_Application of Sutherland Hodgman Polygon Clipping.png

Figure: Sutherland-Hodgman Polygon Clipping

Pseudo code for Sutherland - Hodgman Algorithm

Define variables

In VertexArray is the array of input polygon vertices

outVerteArray is the array of output polygon vertices

Nin is the number of entries in inVertexArray

Nout is the number of entries in outVertexArray

n is the number of edges of the clip polygon

ClipEdge[x] is the xth edge of clip polygon defined by a pair of vertices

s, p are the start and end point respectively of current polygon edge

i is the intersection point with a clip boundary

j is the vertex loop counter

Define Functions

AddNewVertex(newVertex, Nout, outVertexArray)

: Adds newVertex to outVertexArray and then updates Nout

InsideTest(testVertex, clipEdge[x])

: Checks whether the vertex lies inside the clip edge or not;

  retures         TRUE is inside else returns FALSE

Intersect (first, second, clipEdge[x])

: Clip polygon edge (first, second) against clipEdge[x], outputs the intersection point

{                                        :  begin main

x = 1

while (x ≤ n)                     : Loop through all the n clip edges

{

Nout = 0                            : Flush the outVertexArray

s = inVertexArray[Nin] : Start with the last vertex in inVertexArray

for j = 1 to Nin do             : Loop through Nin number of polygon vertices (edges)

{

p = inVertexArrray[j]

if InsideTest(p, clipEdge[x] = = TRUE then                     : Case A

and D

if InsideTest(s, clipEdge[x] = = TRUE then

AddNewVertex(p, Nout, outVertexArray)                        : Case A

else

i = Intersect(s, p, clipEdge[x])                           :  Case D

AddNewVertex(i, Nout, outVertexArray)

AddNewVertex(p, Nout, outVertexArray)

end if

else      :  i.e. if InsideTest(p, clipEdge[x] = = FALSE

(Cases 2 and 3)

if InsideTest(s, clipEdge[x]) = =TRUE then                     : Case B

{

 Intersect(s, p, clipEdge[x])

AddNewVertex(i, Nout, outVertexArray)

end if                                        : No action for case C

 

s = p                                         : Advance to next pair of vertices j = j + 1

end if                                         :  end {for}

}

x = x + 1                                     : Proceed to the next ClipEdge[x +1]

Nin = Nout

inVertexArray = outVertexArray            :  The output vertex array for the current clip edge becomes the input vertex array for the next clip edge

}                                        : end while

}                                        : end main


Related Discussions:- Application of sutherland hodgman polygon clipping

Categories of line segments - 2d clipping algorithms, Categories of Line Se...

Categories of Line Segments It categorizes line segments into three categories (i) trivially rejected (ii) trivially selected (iii) may be partially visible or totally invisibl

Buffer areas required for z-buffer algorithm, Buffer Areas Required For Z-B...

Buffer Areas Required For Z-Buffer Algorithm For applying z-buffer algorithm, we need two buffer areas or two 2-Dimentional arrays: 1) Depth-buffer [i,j], to sa

Explain any ten types of artistic filters, Question 1 Explain any ten type...

Question 1 Explain any ten types of artistic filters Question 2 What is Freehand Tool? Explain the procedure of drawing lines and curves with freehand tool Question 3 Ho

How many times will vertex appear in the intersection points, 1. For the po...

1. For the polygon shown in Figure on the next page, how many times will the vertex V 1 appear in the set of intersection points for the scan line passing through that point?  How

Transformation, Explain window to view port transformation

Explain window to view port transformation

Trivial acceptance case of cohen sutherland line clippings, Trivial accepta...

Trivial acceptance case of cohen sutherland line clippings Case 1: it is Trivial acceptance case whether the UDLR bit codes of the end points P, Q of a provided line is 0000

Two-dimensional geometric transformations, Two-Dimensional Geometric Transf...

Two-Dimensional Geometric Transformations  When a real life object is modelled using shape primitives, there are several possible applications.  You may be required to do furth

Raster & Vector display, what is refresh buffer/ identify the content and o...

what is refresh buffer/ identify the content and organisation of the refresh buffer for the case of raster display and vector display.

Three-dimensional viewing, Three-Dimensional Viewing Three dimensional ...

Three-Dimensional Viewing Three dimensional objects are created using modelling coordinate system. The modelled objects are then placed in locations specified in the scene with

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd