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

Scaling, Scaling, shear, reflection and Viewing coordinates 1) Scaling,...

Scaling, shear, reflection and Viewing coordinates 1) Scaling, shear and reflection operations have natural extensions to 3D.    2)  Viewing coordinates are the coordinates

Introduction of viewing transformations, Introduction of Viewing  Transfor...

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

Languge, what languge do computers speak

what languge do computers speak

Definition of computer animation, Definition of Computer Animation A ti...

Definition of Computer Animation A time dependence phenomenon for imparting visual modifies in any scene as per to any time sequence, the visual modifies could be incorporated

Differentiate between z-buffer method and scan-line method, Differentiate b...

Differentiate between z-buffer method and scan-line method. What is the visibility test made in these methods? Solution : In depth buffer algorithm every pixel location on the

2d shape primitives, 2D Shape Primitives You have already learnt to plo...

2D Shape Primitives You have already learnt to plot a point or a pixel on any display device. In this unit, we shall introduce you to various devices available for data input o

Mplab ide software, MPLAB C18 TOOL (MC18) The MPLAB C18 compiler was de...

MPLAB C18 TOOL (MC18) The MPLAB C18 compiler was designed as a full featured ASNI- compliant C - complier for the PIC18 family of 8bits MCUs. MC18 compiler is integrated with c

Ray tracing - polygon rendering and ray tracing methods, Ray Tracing - Poly...

Ray Tracing - Polygon Rendering and Ray Tracing Methods Basically Ray tracing is an exercise that is performed to attain the realism in a scene. In easy way Ray Tracing is a w

Icon based or event driven tools, Icon Based or Event Driven Tools In s...

Icon Based or Event Driven Tools In such authoring systems, multimedia components and interaction cues or events are organized like objects in a structural process or framework

Gourand shading, what is ray tracing algorithm in hidden surface removal

what is ray tracing algorithm in hidden surface removal

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