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

Intensity of specular reflection - modeling and rendering, Intensity of Spe...

Intensity of Specular Reflection - Modeling and Rendering Intensity of specular reflection based upon material properties of surface and the angle of incidence and the value o

Digital painting, Please guide if there is any easy steps tutorial availabl...

Please guide if there is any easy steps tutorial available for digital painting in adobe photoshop.

C++ programming, self test exercise 17 asked you to overload the operator >...

self test exercise 17 asked you to overload the operator >> and the operator Overload biinary operator + to add pairs according to the rule (a, b) + (c, d) = (a + c, b, + d) overl

What do you meant by the term typography, Question 1: (a) What do you m...

Question 1: (a) What do you meant by the term typography and what is its main purpose? (b) Differentiate between typeface and font using examples. (c) Design knows many diffe

Seed fill algorithm - output primitives, Seed fill algorithm A seed fil...

Seed fill algorithm A seed fill algorithm starts with a known initial interior point of the polygon and spreads out to determine other interior points to fill the given closed

Non-zero accelerations - computer animation, Non-Zero Accelerations - Compu...

Non-Zero Accelerations - Computer Animation This method of simulating the motion is fairly helpful introducing the realistic displays of speed changes, particularly at the sta

Vector graphics, Vector Graphics: These are images which may be entirely d...

Vector Graphics: These are images which may be entirely described by using mathematical definitions. The image below demonstrates the principle. To the left you notice the image i

Cases for subdivisions of polygon-visible surface detection, Cases for Subd...

Cases for Subdivisions of Polygon No additional subdivisions of a particular area are desired, if one of the subsequent conditions is true as: Case 1: All the polygons ar

What is an axonometric orthographic projection, What is an axonometric orth...

What is an axonometric orthographic projection and cabinet projection? The orthographic projection can show more than one face of an object.  Such an orthographic projection i

Computer Architecture, How many 128 x 8 RAM chips are needed to provide a m...

How many 128 x 8 RAM chips are needed to provide a memory capacity of 4096 16 bits?

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