5 - lecture five ++

advertisement
Computer Graphics
Scan Conversion Polygon
Faculty of Physical and Basic Education
Computer Science Dep.
2012-2013
E-mail:
azhee.muhamad@univsul.net
azheewria07@gmail.com
Lecturer:
Azhee W. MD.
Scan Conversion polygon
 Polygon
 Polygon Classifications
 Identifying Concave Polygons
 Splitting Concave Polygons
 Inside-Outside Tests
2
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Polygon
 A polyline is a chain of connected line segments. When starting point
and terminal point of any polyline is same, i.e. when polyline is closed
then it is called polygon.
3
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Polygon Classifications
 interior angle: is an angle inside the polygon boundary
that is formed by two adjacent edges.
 convex polygon: interior angles of a polygon are less
than or equal to 180°
 Or Convex : is a polygon in which the line segment
joining any two points within the polygon lies
completely inside the polygon
4
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Polygon Classifications
 Concave polygon: the polygon that is not convex.
 or Concave: is a polygon in which the line segment
joining any two points within the polygon may not lie
completely inside the polygon.
5
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Identifying Concave Polygons
1. At least one interior angle greater than 180°
2. The extension of some edges of a concave polygon will
intersect other edges
3. Some pair of interior points will produce a line segment
that intersects the polygon boundary
4. Find a cross product for adjacent edges
 For a convex polygon all cross products will be of the
same sign (positive or negative)
 If some cross products yield a positive value and some
a negative value, we have a concave polygon
6
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Convex or concave?
 Convex if no line that contains a side of the polygon
contains a point in the interior of the polygon.
 Concave or non-convex if a line does contain a side of
the polygon containing a point on the interior of the
polygon.
7
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Identifying Concave Polygons(2)
8
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
Splitting Concave Polygons: Cross Product
9
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
example
Q)Use cross product to find normal vector of a polygon with the
following vertices: (0.2, -0.4, 0.2), (0.6, 0.7, 0.5), (-0.3, 0.4, -0.3),
(-0.4, -0.3, -0.4)
Answer:
Ek = Vk+1 - Vk
E1 = (a1, a2, a3), E2 = (b1, b2, b3)
E1 x E2 = (a2b3 − a3b2, a3b1 − a1b3, a1b2 − a2b1)
V1 = (0.2, -0.4, 0.2), V2 = (0.6, 0.7, 0.5), V3 = (-0.3, 0.4, -0.3)
E1 = V2 – V1
= (0.6, 0.7, 0.5) - (0.2, -0.4, 0.2)
= (0.4, 1.1, 0.3)
E2 = V3 – V2
= (-0.3, 0.4, -0.3) - (0.6, 0.7, 0.5)
= (-0.9, -0.3, -0.8)
E1 x E2 = (1.1*-0.8-0.3*-0.3, 0.3*-0.9-0.4*-0.8, 0.4*-0.3-1.1*-0.9) = (-0.79, 0.05, 0.87)
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
10
Splitting Concave Polygons: Set of Triangles
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
11
Splitting Concave Polygons: Set of Triangles (2)
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
12
Inside-Outside Tests
 It is not clear which regions of the xy plane we
should call interior and which regions we should
designate as exterior for a complex polygon with
intersecting regions.
 algorithms:
 odd-even rule
 nonzero winding-number rule
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
13
Inside-Outside Tests (2)
odd-even rule
 Draw a reference line from any position to a
distant point outside a closed polyline
 The line must not pass through any endpoints
 Count the number of line segments crossed along
this line
 If the number is odd then the
region considered to be
interior
 Otherwise, the region is
exterior
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
14
Inside-Outside Tests (2)
nonzero winding-number rule
 Counts the number of times the boundary of an object winds
around a particular point in the counterclockwise direction
 The count is called the winding number
 Initialize winding number to zero
 Draw a reference line from any position to a distant point
 The line must not pass through any endpoints
 Add one to the winding number if the
intersected segment crosses the reference
line from right to left (counterclockwise)
 Subtract one from the winding number if the
segment crosses from left to right (clockwise)
 If winding number is nonzero, the region is
considered to be interior
 Otherwise, the region is exterior
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
15
Example
Q) Use nonzero winding number rule to determine the
interior and exterior regions of the following polygon ?
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
16
Example
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
17
References
Donald Hearn, M. Pauline Baker,
Computer Graphics with OpenGL, 3rd
edition, Prentice Hall, 2004
Chapter 3, 4
University of sulaimanyiah - Faculty of Physical and Basic Education - Computer Dep. 2012-2013
18
Download