# م . نسح

```‫م‪.‬م عالء الدين عباس عبد الحسن‬
‫‪Sunday 4/11/2012‬‬
ELLIPSE-GENERATING
ALGORITHMS
* Loosely stated, an ellipse is an elongated circle. We can also
describe an ellipse as a modified circle whose radius varies
from a maximum value in one direction to a minimum value
in the perpendicular direction.
* The straight-line segments through the interior of the ellipse
in these two perpendicular directions are referred to as the
major and minor axes of the ellipse.
2
Ellipse-Generating Algorithms
Ellipse – A modified circle whose radius varies from a
maximum value in one direction (major axis) to a minimum
value in the perpendicular direction (minor axis).
F1
d1
P=(x,y)
F2
d2
 The sum of the two distances d1 and d2, between the fixed
positions F1 and F2 (called the foci of the ellipse) to any
point P on the ellipse, is the same value, i.e.
d1 + d3 2 = constant
Ellipse Properties
* Expressing distances d1 and d2 in terms of the focal
coordinates F1 = (x1, x2) and F2 = (x2, y2), we have:
( x  x1 )2  ( y  y1 )2  ( x  x2 )2  ( y  y2 )2  constant
ry
rx
* Cartesian coordinates:
* Polar coordinates:
2
 x  xc   y  yc 
  1

  
 rx   ry 
2
x  xc  rx cos 
y  yc  ry sin 
4
Ellipse Algorithms
* Not symmetric between the two octants of a quadrant
* Thus, we must calculate pixel positions along the
elliptical arc through one quadrant and then we obtain
positions in the remaining 3 quadrants by symmetry
(-x, y)
(x, y)
ry
rx
(-x, -y)
5
(x, -y)
Polar Ellipse Algorithm
Begin
xc , yc --- ellipse Center
x , y --- point on ellipse
theta
-- angle
dTheta --- angle change
dTheta = 1/Max(r1,r2)
for (theta =0 to Pi*2
step = dTheta)
begin
x=xc + r1 * Cos(theta)
y=yc + r2 * Sin(theta)
point(x , y)
endfor
end
ELLIPSE-GENERATING
ALGORITHMS
* Polar coordinates:
sin θ = (y – yc )/ry
cos θ =(x – xc) / rx
dx = -rx sin θ dθ
Dy = ry cos θ dθ
Dx= -rx (y – yc )/ry = (rx/ry ) (yc -y)dθ
Dy = ry (x – xc) / rx = ( ry/rx) ( x – xc) dθ
7
Ellipse Algorithm
Begin
xc , yc --- ellipse Center
x , y --- point on ellipse
theta
-- angle
dTheta --- angle change
dTheta = 1/Max(r1,r2)
for (theta =0 to Pi*2
step = dTheta)
begin
x = x + rx / ry * (yc-y) * dtheta
y = y + ry / rx * (x-xc) * dtheta
point(x , y)
endfor
end
Polygon
*A
polygon can be represented as a number of line
segments connected end to end to form a close figure.
Alternatively, it may be represented as the points where
the sides of the polygon are connected. The line
segments which make up the polygon boundary are called
sides or edges. The end points of the sides are called the
polygon vertices.
9
Polygon Classifications
An interior angle of a polygon is an angle inside the polygon boundary that is
formed by two adjacent edges. If all interior angles of a polygon are less than
or equal to 180 , the polygon is convex. An equivalent definition of a convex
polygon is that its interior lies completely on one side of the infinite extension
line of any one of its edges. Also, if we select any two points in the interior of a
convex polygon, the line segment joining the two points is also in the interior. A
polygon that is not convexis called a concave polygon. Figure 3-42gives examples
of convex and concave polygons.
The term degenerate polygon is often used to describe a set of vertices that
are collinear or that have repeated coordinate positions. Collinear vertices generate
a line segment. Repeated vertex positions can generate a polygon shape with
extraneous lines, overlapping edges, or edges that have a length equal to 0. Sometimes
the term degenerate polygon is also applied to a vertex list that contains
fewer than three coordinate positions.
r
10
Polygon Classifications
11
Identifying Concave
Polygons
* A concave polygon has at least one interior
angle greater than 180r. Also, the extension of
some edges of a concave polygon will intersect
other edges, and some
* pair of interior points will produce a line
segment that intersects the polygon boundary.
Therefore, we can use any one of these
characteristics of a concave polygon as a basis
for constructing an identification algorithm.
12
Polar polygon Algorithm
Begin
xc , yc --- polygon Center
N -- number of vertices
theta
-- angle
dTheta --- angle change
dTheta = twPI/ N
xs=xc+r,ys=yc
for (i= 1 to N )
begin
theta = theta + dtheta
xe = xc + r * Cos(theta).
ye = yc - r * Sin(theta).
Line (xs, ys)-(xe, ye).
Set xs=xe, ys=ye.
endfor
end
14
```