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

Lcd - liquid crystal display, LCD - Liquid Crystal Display A liquid...

LCD - Liquid Crystal Display A liquid crystal display consists of two glass plates each containing a light polarizer. One glass plate contains vertical polarizer and the ot

Character generation, Which is the most usable and frequent method to gener...

Which is the most usable and frequent method to generate a character?

Digital signal processing system for an analog signal, QUESTION (a) Dra...

QUESTION (a) Draw and explain the block diagram of a Digital Signal Processing System for an analog signal. (b) Draw the pictorial representation of the signals at each leve

Line clipping algorithm - cohen sutherland algorithm, Line Clipping Algorit...

Line Clipping Algorithm - Cohen Sutherland Algorithm Line is a series of endless number of points; here no two points contain space in among them. Hence, the above said inequa

Explain vector graphics and raster graphics, Question: (a) In computer...

Question: (a) In computer graphics it is important to distinguish between the two approaches to graphical modeling:vector graphics and raster graphics. Explain in details th

Define the term -monitoring, Define the term -Monitoring Chemical and n...

Define the term -Monitoring Chemical and nuclear plants (monitoring key parameters), hospitals (monitoring patient's vital signs), burglar alarms (monitoring for intruders) etc

Types of refresh monitors - raster scan and random scan, Types of Refresh M...

Types of Refresh Monitors - Raster Scan and Random Scan There are two types of refresh monitors, i.e. the Raster Scan and Random Scan that will be illustrated separately.

Ray casting - polygon rendering and ray tracing methods, Ray Casting -polyg...

Ray Casting -polygon rendering and ray tracing methods It is a method wherein the surfaces of objects visible to the camera are determined by throwing or say casting rays of

Other curves - parabola and hyperbola, Other curves - parabola and hyperbol...

Other curves - parabola and hyperbola Conic sections such as parabola and hyperbola are used in many instances such as in motion planning along a trajectory or in modelling the

Objectives-visible-surface detection, After going through this section, you...

After going through this section, you should be capable to: know the meaning of Visible-surface detection; distinguish among image-space and object-space approach for vi

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