Application of sutherland hodgman polygon clipping, Computer Graphics

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

Posted Date: 4/3/2013 3:50:42 AM | Location : United States







Related Discussions:- Application of sutherland hodgman polygon clipping, Assignment Help, Ask Question on Application of sutherland hodgman polygon clipping, Get Answer, Expert's Help, Application of sutherland hodgman polygon clipping Discussions

Write discussion on Application of sutherland hodgman polygon clipping
Your posts are moderated
Related Questions
2. Describe how the Bresenham rasterisation algorithm is advantageous when compared to any other existing method.

Magnify a triangle with vertices A = (1,1), B = (3,1) and C = (2,2) to twice its size in such a way that A remains in its original position.  Answer: You need to apply scaling b

Painting and Drawing While we talk about graphics, we mean pictures can be either photographs or illustrations. If you want to acquire graphics into a Web page or multimedia r

Entertainment - Applications For Computer Animation Advertising, Games, Film, Video, Television, Multimedia are various of the entertainment fields wherein computer animation h

Introduction of Viewing  Transformations Projection is fundamentally a transformation or mapping of 3D objects upon 2D screen. Projection is mostly categorised in Para

Limitations of Cohen Sutherland line clipping Algorithm The algorithm is merely applicable to rectangular windows and not to the other convex shaped window. Consequently, a

Question 1: a. List respectively ten main technical and human components necessary to ensure a studio-based one-plus-one interview? b. How does each component contribute in

2-DIMENSIONAL TRANSFORMATION Modeling transformation is the mechanism to compose an image from modeling  primitives. The modeling primitives are defined in their own coordinate

Similarly we can control the intensity of colours We contain more bit planes for all colour say three bit planes for R, 3 for G and 3 for B here all bit plane of size mxn, hen