0% found this document useful (0 votes)
102 views116 pages

0-CubicSpline-Bezier - Curve-25oct18

The document discusses mathematical representations of 2D curves. It explains that curves can be represented parametrically or non-parametrically. Common analytic curves include lines, circles, ellipses, parabolas and hyperbolas. Synthetic curves like cubic splines, Bezier curves, and B-splines are defined by data points. Parametric representations are more advantageous than non-parametric forms. Specific parametric equations are provided for lines, circles, ellipses, and parabolas. Conic sections and their applications are also overviewed.

Uploaded by

vishwajeet patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views116 pages

0-CubicSpline-Bezier - Curve-25oct18

The document discusses mathematical representations of 2D curves. It explains that curves can be represented parametrically or non-parametrically. Common analytic curves include lines, circles, ellipses, parabolas and hyperbolas. Synthetic curves like cubic splines, Bezier curves, and B-splines are defined by data points. Parametric representations are more advantageous than non-parametric forms. Specific parametric equations are provided for lines, circles, ellipses, and parabolas. Conic sections and their applications are also overviewed.

Uploaded by

vishwajeet patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 116

Mathematical Representation

of 2D Entities (Curves)
Content
• Curve Representation-
Parametric vs Non-Parametric
• Types of Curves-
Analytic, Synthetic
• Analytic Curves:
Line, Circle, Ellipse, Parabola, Hyperbola
• Synthetic (Free) Curves:
Cubic Spline, Bezier, B-Spline, NURBS
Representation of curve
• Curves (2D Entities) are important entities in Geometric
modeling

• Curves can be mathematically represented as-


Non-parametric (Generic), Parametric

• Non-parametric: Curve is represented as a relationship between


x, y and z.
For ex. Y= mX + C

• Parametric: Curve is represented NOT as a relationship between


x, y and z but as a function of Independent Parameter such as u,
t, 𝜽
Representation of curve
Non-parametric
Explicit Implicit
i.e. Y=mX+c X2+Y2=r2

Explicit – the coordinates y &z of a pt Implicit – co-ordinates x,y,z are expressed


on curve are expressed as 2 separate by 2 functions f(x,y,z)=0 g(x,y,z)=0
functions of x as independent variable.
P= [x, f(x) g(x)] These are solved at certain value of x &
find y, z values.
Explicit euation
Mapping Cartesian to parametric space
Limitations of Non-Parametric Eqn.

1. Due to one-to-one relation betn. X,y, & z, Explict eqns are


not used to represent Closed Curves such as Circle
2. If Line is vertical, its Slope will be Infinite. Such situation is
difficult to handle in Computation.
3. Implicit curves are represented by solving Simultaneous
Eqns., which is highly inconvenient, lengthy and
computationally high cost
4. Implicit form represent unbounded geometry. The LINE is
an infinite line and CONIC is complte curve.
In CAD, LINE is betwn. 2 points. Curve (Parabola,
Hyperbola etc.) are part of the Conic
5. Equation of curve is dependnt of coordinate system
6. Difficult to apply transformations
7. Difficult to do the various types of analyse s such as
intersection of curve point.
Advantages of Parametric Eqn.

5. Equation of curve is independnt of coordinate system


6. Programmer & computational point of view, parametric representation is convenient
Types of Curves-
• Analytic Curves :
Defined by Analytic equations.
Ex. Line, Circle, Ellipse, Parabola, Hyperbola

• Synthetic (Free) Curves:


Defined by set of Data points & represented
by the Polynomials.
Ex. Cubic Spline, Bezier, B-Spline, NURBS
Used to create Complex, Intricate shapes
such as Car bodies, Aeroprofiles, Turbine
blades, Bottles etc.
Parametric Representation of line

1. Line connecting Two end Points


2. Line starting from given Point, given Length & Direction

In Scalar Form
Tangents
• The derivative of a curve represents the tangent
vector to the curve at some point

dx
u 
du
xu 
Parametric Representation of line
Tangent Vector of Line P1, P2 is
P’ = P2 – P1
In Scalar Form

X’= X2 - X1, Y’ = Y2 – Y1 & Z’ = Z2 – Z1


0<u <1
The Unit Vector is given by

^ P2- P1 P2- P1
n = -------------- = ---------- where L = Sqrt(dX2 + dY2 +dZ2)
| P2-P1| L

^ X’ Y’ Z’
n = ---- i + ----- j + ----- k
L L L
Parametric Representation of line
Cross product of vectors
Cross product of vectors
Dot Product of vectors
Parametric Representation of line
Parametric Representation of line

2. Line starting from given Point, given Length & Direction

P = P1 + L ^n

x= 𝑥1 + 𝐿.l
y= y1+ L.m
z= z1 + L.n
where L = Sqrt(dX2 + dY2 +dZ2)
0<L<Lmax
^ X’ Y’ Z’ ^
n = ---- i + ----- j + ----- k n= l i+ mj+ nk
L L L
Parametric Representation
of Circle
Parametric Representation of Circle
Parametric Equation of Circle
Cartesian Cylindrical
radius=10 radius=10
x=radius*cos(t*360) r = radius
y=radius*sin(t*360) theta = t *360
z=0 z=0

Spherical
radius=10
rho = radius
theta =90
phi = 360*t
Circle with centre (Xc,Yc,Zc)
X = Xc + R Cos (2  u) ,
Y = Yc+ R Sin (2  u)
Z=Zc for 0  u  1

Recursive Method
(Efficient Algorithm to Generate Circle ):
xi  Xc  R.Cos( i ) yi  Yc  R.Sin( i ) Zi =Zc

xi 1  xc  ( xi  xc)Cos  ( yi  yc) Sin

yi 1  Yc  ( xi  xc) Sin  ( yi  yc)Cos


Conic Sections

Conic is defined as the locus of a point moving in a plane such that


the ratio of its distance from a fixed point and a fixed straight line is
always constant.

Fixed point is called Focus Fixed line is called Directrix


Conic Sections

Curves formed by the intersection


of a plane with a right circular
cone. e.g. Parabola, hyperbola
and ellipse
Conic Sections

When eccentricity
< 1 Ellipse
=1 Parabola
>1 Hyperbola
Conic Sections
Applications of Ellipse
WHISPERING GALLERIES
Vijapur Gol ghumat
In rooms where the ceilings are
elliptical, a sound made at one
focus can be heard very clearly at
the other focus.
Any sound made at the focus will
rebound of the elliptical ceiling
and pass through the other focus.

ELLIPTICAL BILLIARDS TABLE


The elliptical billiards table uses the same
principle as the whispering gallery above.
The pocket is positioned at one of the focal
points. When a ball passes over the other
focal point, regardless of which point on the
ellipse it bounces off, it will always pass
over the other focal point. Shown below is a
sample of a path traced by a ball on the
table.
Applications of Ellipse
SATELLITES
All the planets orbiting the sun are satellites. These
planets do not travel in a circular motion as many
people believe they do, but they travel in elliptical
orbits. The eccentricity of the earths orbit around
the sun is approximately 0.0167, which is, as
explained previously, almost circular. The planet
Pluto has an orbit with an eccentricity of
approximately 0.2481.

The moon travels around the earth in an


elliptical orbit also
Conic Sections- Ellipse

Efficient Algorithm
Conic Sections- Ellipse
Example- Generate quarter part of an ellipse with semi major axis a= 10 and semi
minor axis b=5 inclined 30 degree to the horizontal with center at (5,0) by using
efficient algorithm and represent graphically. Take 33 number of points (n) on the
circumference of an ellipse.
steps:
1. Generate origin centered ellipse with a=10 and b=5
2. Rotate ellipse through 30 degree and then translate the ellipse 5 units in x direction.

a/b= 10/5 =2

b/a = 5/10 =0.5

x1=10 x 1 = 10

y1 = 5 x 0 = 0

x2=10 x 0.981 – 2 x 0 x 0.195= 9.81

y2 = 0.5 x 10 x 0.195 + 0 x 0.981 = 0.975


Conic Sections- Ellipse
Now to rotate ellipse through 30 and then translate the ellipse 5 units in x direction we
multiply above coordinates by composite transformation matrix given by: T r = R . T

We get final coordinates of points by using the relation : P’ = P . Tr


Conic Sections- Parabola
Conic Sections- Parabola
Y
Y
y2= -4ax x2=4by
y2=4ax

X
X

x2= -4by

Focus- (a,0) (-a,0) (0,b) (0,-b)


Conic Sections- Parabola

Algorithm to generate parabola with increment

n= no. of points on circumference of parabola


Parabola

x = (40 * t^2)
y = (2*40 * t)
z=0
Applications of Parabola
1. The shape of car headlights, mirrors in reflecting telescopes and television
and radio antennae
Applications of Parabola
1. The shape of car headlights,
The principle used for the car headlight is
also used for torches etc. The light is
placed in the focus of a parabolic mirror, as
the light travels and meets the mirror, it is
reflected in lines parallel to the axis (in
straight lines ) as can be seen in the
diagram to the left. This is why the light
beam from the headlights of cars and from
torches is so strong.

1. Television and radio antennae

These use the same principle as the


lights, in that beams are sent out
parallel to the axis, and beams coming
in are reflected into the focus.
Applications of Parabola
NATURAL OCCURRING PHENOMENA

A jet of water, like that formed


by a fountain, forms the shape
of a parabola

When a ball is struck in the air, it


travels along a path in the shape of
a parabola. Shown here is a
rectangular container
with fluid inside, the
container is placed on
a rotating table, when
the table rotates the
fluid inside take the
shape of a parabola.
Conic Sections- Parabola
Example- Generate parabola curve segment in the first quadrant for 2 < y < 4
for the parabola given by - x = a . 2 and y = 2 a. where a=1.
Conic Sections- Parabola
The other points on parabolic curve segment in the first quadrant are calculated
as below-
Hyperbola
A Hyperbola is obtained when a section plane, parallel/inclined to
the axis cuts the cone on one side of the axis.

When eccentricity

>1 Hyperbola
Applications of Hyperbola

Hyperbolas are extensively seen


in the design of bridges.

Certain comets (Dhumketu) which


can be seen from earth travel in
the shape of a hyperbola.
Applications of Hyperbola

cooling towers, Mirrors used for long distance


telescopes,
Conic Sections- Hyperbola
Parametric eqn. of Conic Section is

Above eqn. does not cover maximum plot area. Therefore we use following another
parametric equation which yields the polygon with maximum inscribed area.-
Conic Sections- Hyperbola

OR
Conic Sections- Hyperbola

Example- Generate hyperbola segment taking 8 point in the first quadrant


with a=3, b=1 for 6 < X < 12
Conic Sections- Hyperbola
Conic Sections- Hyperbola

Similarly other points on the hyperbola in the first quadrant are calculated and
drawn on the graph as bellow
Example Hyperbola
Write the equation for the following hyperbola in both parametric forms:

The second form has two parts, one for the right side and one for the left side.The form for the right side is:

The form for the left side is:


Example Hyperbola
Write the other half of the parametric equation for the hyperbola
below.

The equation given is the parametric equation for the right half of a hyperbola. The
equation for the left half is of the form:
Spiral curve

/* Parametric eqn. of Spiral curve


/* No. of turns
nt=5
/* Inner radius
r=4
x = (r+10*t) * cos ( t * 360 *nt)
y =(r+10 *t)* sin ( t * 360*nt )
z=0
Parametric Equation of Helical Curve

Cartesian Cylindrical
radius=10 radius=10
pitch=10 pitch=10
height=50 height=50
x= radius*cos(t*360*pitch) r =radius
y= radius*sin(t*360*pitch) theta = t *360*pitch
z=height*t z = height*t
Sine Curve

* Cartesian coordinates
amplitude=10
wavelength=50
x = wavelength* t
y = amplitude* sin (t * 360)
Spherical Spring
Spherical
pitch=20
radius=10
rho = radius
theta = 180*t
phi = t * 360*pitch

Spherical
pitch=20
radius=10
rho = radius
theta = 90*t
phi = t * 360*pitch
An involute Curve
An involute of a circle is formed as follows:
Imagine that a long (that is, infinite) string is
wound tightly around a circle, and that you
grasp the end of the string and begin to unwind
it, keeping the string taut. The end of the string
traces out the involute.

/* Involute Curve
a=4
nt=2
x =a*(cos(360*t*nt) + t* sin(360*t*nt))
y = a*(sin(360*t*nt) - t *cos(360*t*nt))
z=0
Cycloid
The curve traced out by a point P on the circumference of a circle as
the circle rolls along a straight line is called a cycloid

If the circle has radius r and rolls along the x-axis and if one position of P is
the origin, We find parametric equations for the cycloid.

From the Figure, the distance Circle has


rolled from the origin is

Therefore, the center of the circle is C( , r).


Cycloid
Let the coordinates of P be (x, y).
Then from the Figure

Therefore, parametric equations of the cycloid are

One arch of the cycloid comes from one rotation of the circle and so is described by
Types of Cycloids
Hyper-cycloid ( Epicycloids ) Hypo-cycloid
A plane curve created by tracing a obtained similarly except
chosen point on the edge of a circle that the circle of radius
of radius r rolling on the outside of a r rolls on the inside of the
circle of radius R. circle of radius R

r
R
Types of Cycloids
Hyper-cycloid ( Epicycloids ) Hypo-cycloid
A plane curve created by tracing a obtained similarly except
chosen point on the edge of a circle that the circle of radius
of radius r rolling on the outside of a r rolls on the inside of the
circle of radius R. circle of radius R

Source: http://www-history.mcs.st-and.ac.uk/Curves/Cycloid.html
Hyper-cycloid
A wheel of radius r=1 rolls around the
outside of a circle of radius or=3. A
point on the rim of the wheel traces
out a curve called a hypercycloid

Assuming P starts at the point (3,0)


Parametric Equation:
/* HyperCycloid
/* radius of roller
r=1
/* Outside radius of circle on which roller rolls
/* no. of petals
or=3 (3,0)

x=(or+r)*cos(t*360) - cos((or+r)*t*360)

y=(or+r)*sin(t*360) - sin((or+r)*t*360)
z=0
Hyper-cycloid- r=1 Constant & vary or
/* radius of roller
r=1
/* Outside radius of circle on which roller rolls or = 3
or = 3 r=1
(3,0)
x=(or+r)*cos(t*360) - cos((or+r)*t*360) no. of petals=3

y=(or+r)*sin(t*360) - sin((or+r)*t*360)
z=0

no. of petals =4
or = 6
or = 4 r=1
r=1 no. of petals=6
Hyper-cycloid- or=3 Constant & vary r

/* radius of roller
r=1
r=1
or = 3
/* Outside radius of circle on which roller rolls
or = 3 (3,0)
no. of petals=3
x=(or+r)*cos(t*360) - cos((or+r)*t*360)

y=(or+r)*sin(t*360) - sin((or+r)*t*360)
z=0

no. of petals=4
r=2 no. of petals=5
or = 3 r=3
or = 3
Hypo-cycloid
A wheel of radius r=1 rolls around the
inside of a circle of radius or=3. A point P
on the rim of the wheel traces out a P
curve called a hypocycloid
Assuming P starts at the point (3,0)

Parametric Equation:
/* HypoCycloid
/* radius of roller
r=1

/* Outside radius of circle on which roller rolls


or=3 (3,0)

x=(or-r)*cos(t*360) + cos((or-r)*t*360)

y=(or-r)*sin(t*360) - sin((or-r)*t*360)
z=0
Hypo-cycloid- or vary & r=1 constant
/* HypoCycloid
/* radius of roller
r=1 Or = 3

/* Outside radius of circle on which roller rolls


P
or = 3

x=(or-r)*cos(t*360) + cos((or-r)*t*360)

y=(or-r)*sin(t*360) - sin((or-r)*t*360)
z=0

Or = 4

Or = 6
Hypo-cycloid- r vary & or=3 constant
/* HypoCycloid
/* radius of roller r=1
r=1 Or = 3

/* Outside radius of circle on which roller rolls


P
or = 3

x=(or-r)*cos(t*360) + cos((or-r)*t*360)

y=(or-r)*sin(t*360) - sin((or-r)*t*360)
z=0

r=4 r=5
r=2
Or = 3 Or = 3
Or = 3
Examples
Synthetic (Free) Curves
Synthetic curves are also called free curves, since they can be designed and
manipulated, as we desire.
Useful to design complicated & Intricate shaped parts such as car bodies, aeroplane
wings, ship hull, blades, bottles shape, micro fintubes and biomedical applications etc.
Synthetic (Free) Curves
Synthetic (Free) Curves
Synthetic (Free) Curves characteristics
Axis independence: The shape of image should not change when the control points
are measured in a different coordinate system

Local and Global If part of curve shape changes only in the region near the control
points, then behavior is called local control (Figure b). Whereas in global control, curve
shape changes throughout by changing the control point position (Figure a).

Figure a Figure b

Flexibility- Synthetic curves provides very flexibility during the modification by just
adding or removing control points.
If a curve is specified only two control points, we may
get a straight line (fig.a) but by introducing third point we
may get many curves whose shapes depends upon the
position of the third control point as shown in fig(b)
Synthetic (Free) Curves characteristics
The order of a curve deals with the number of degrees of freedom that are necessary to uniquely
define that curve. In general the order of a curve equals the degrees of freedom of that curve.
Degree = (Order - 1)

Order Degree Name


1 0 Constant
2 1 Linear
3 2 Quadratic
4 3 Cubic
5 4 Quartic
Polynomial Functions
• Linear: f t   at  b

• Quadratic: f t   at  bt  c
2

• Cubic: f t   at 3  bt 2  ct  d
Synthetic (Free) Curves characteristics

C0 - Zero order continuity means two curves meet which forms sharp corner at the joint.

C1 First order continuity , both curves are tangent at the point of intersection i.e. tangent at the
end point of first curve (C1) and tangent at the start point of the second curve (C1) is same.

C2 - Second order continuity requires the curvature to be same i.e. radius of curvature at the
end point of first curve (C1) and start point of the second curve (C2) is same.

C0 continuity C1 continuity tangent C2 continuity


C2
C2 C1
C2

C1 R R
C1

Second-order parametric
The directions of the tangent vectors
Two curve segments join continuity: C2 parametric
(not necessarily the magnitudes) are
together: C0 geometric equal: C1 geometric continuity. continuity.
continuity. Both the directions and magnitudes
are equal: C1 parametric continuity.
Specifying Curves
• Control Points • Knots
control points that lie on the a set of points that influence the
curve curve's shape

• Interpolating spline • Approximating spline


curve passes through the
control points merely
control points knots (Cubic
Spline) influence shape (Bezier
Curves, B-spline)
Hermite Cubic Spline Curve:
.

Curvesdefined by two endpoints and two


endpoint tangent vectors

Why cubic?
lower-degree polynomials give too little flexibility
in controlling the shape of the curve

higher-degree polynomials can introduce


unwanted wiggles and require more computation
Real Spline Curve:
.
Real Spline Curve:
.
Hermite Cubic Spline Curve:
This .curves is one of the simplest synthetic curve which is represented in
parametric form.
This curve is used to interpolate through the given data points.

The general nonparametric equation for the basic 2D cubic spline is –


y  a0  a1  x  a2  x 2  a3  x 3
The slope equation is- y'  a1  2  a2  x  3  a3  x 2

The curvature equation is- y ' '  2  a2  6  a3  x

This Curve utilizes a cubic equation therefore 4 conditions are required to determine
Hermite Cubic Spline Curve:
.

• These may be 4 points through which the curve must pass, or


• 3 points & a slope at any one of them,
• or the positions of two end points and two tangent vectors to end points.
Cubic Spline Curves
u=1
P’0 P1
P’1
P0 u=0
Cubic Spline Curves

-a3
Cubic Spline Curves

After substituting aO,a1,a2,a3 in above equation we get


Cubic Spline Curves
In matrix form
Cubic Spline Curves- Effect of
tangent vectors on the curves shape
Cubic Spline Curves

Drawbacks
•Due to its global control characteristics, by changing the position of a data point,
the entire shape of spline changes.

•The curve is always cubic regardless of the number of data points.

•The curve is less smoother than other synthetic curves.

•Practically the direction and magnitude of the tangent vector is very difficult to kno
Bezier Curve
Bezier curves and surfaces are developed by P. Bezier of French Car firm
Regie Renault in 1962. He used this curve in UNISURF software to define the
outer panels of several cars.

This curve is defined by n number of segments and n+1 number of location


points called data points or control points.

These data points form the vertices of Bezier polygon which define curve
shape and curve only passes through two end points, other data points
control shape, order of the curve.
p2
p1

p3

p0
This curve is always tangent to first and last segments of the polygon
Bezier Curve
Bezier Curve

Where P(u) is any point on the curve, Pi is control point and Bi,n is Bernstein blending function.

In Cubic Bezier curve n =3 and control points are n+1 = 4, therefore


Bezier Curve
Bezier Curve
P(u) = [-u3 + 3u2 - 3u2 + 1]Po + [3 u3 - 6 u2 + 3u + 3 ] P1 + [-3 u3 + 3 u2 ] P2 + u3 P3
Bezier Curve
Bezier Curve
The various examples of cubic Bezier curves for various control points are shown below
The various characteristics of Bezier Curve
The various characteristics of Bezier Curve
The various characteristics of Bezier Curve
Drawback of Bezier Curve
Bezier Curve
Bezier Curve
Bezier Curve
Bezier Curve
Derivation for Quadratic Bezier Curve:

The degree of quadratic Bezier curve is n=2 ,


therefore number of control points required to
plot quadratic Bezier curve are n+1 =3

Q0 Q1 Let Q0 and Q1 are points lying between


Po  P1 and P1  P2 respectively
C(u)

Q0 & Q1 can be written as

Q0= (1-u) P0 + u. P1 ------- (1)

Q1= (1-u) P1 + u. P2 ------ (2)

Suppose C(u) is the point between Q0 and Q1, then


C(u) = (1-u) Q0 + u. Q1 ---------- (3)

Substitute (1) and (2) in (3), we get


Derivation for Quadratic Bezier Curve:

C(u) = (1-u) Q0 + u. Q1 ---------- (3)

C(u) = (1-u) [(1-u) P0 + u. P1 ] + u. [(1-u) P1 + u. P2 ]

C(u) = (1-u)2 P0 + 2u. (1-u) P1 +u2 P2


Quadratic Bezier Curve:
C(u) = (1-u)2 P0 + 2u. (1-u) P1 +u2 P2

P(u) = P0 B 0 , 2(u) + P1 B1, 2(u) + P2 B2 , 2(u), 0  u  1

2!
B0,2(u) = -------- u0 (1 – u )2 = (1 – u ) 2
2!
2!
B1,2(u) = -------- u1 (1 – u ) = 2 u (1 – u )
1!
2!
B2,2(u) = -------- u2 (1 – u ) 0 = u 2
2!
P(u) = (1-u)2 P0 + 2u. (1-u) P1 +u2 P2
Pascal’s Triangle for Higher Degree Curves:
We have seen in earlier part that for Cubic Bezier curve n =3 therefore

P(u) = P0 (1 – u )3 + 3 P1 u (1 – u )2 + 3 P2 u2 (1 – u ) + P3 u 3

It is tedious process to derive coefficients of higher degree curves.

Instead of deriving each time, we can use Pascal’s triangle to get


these coefficients for any degree curve easily.

The coefficients are just rows in Pascal’s triangle


Pascal’s Triangle for Higher Degree Curves:
1. We start to generate Pascal’s triangle by writing down the number 1

2. Then we write a new row with the number 1 twice:


1
1 1
3. We then generate new rows to build a triangle of numbers. Each new row
must begin and end with a 1:
Pascal’s Triangle for Higher Degree Curves:
4. The remaining numbers in each row are
calculated by adding together the
two numbers in the row above which lie
above-left and above-right.

5. The two vacant spaces in the 4th are


each found by adding together the two
numbers in the 3rd which lie above-left and
above-right: 1 + 2 = 3 , and 2 + 1 = 3
Which gives:
Pascal’s Triangle for Higher Degree Curves:

This way we can continue to add as many rows as we wish to build up the
triangle. First six rows of Pascal’s triangle are shown below:

Type of Bezier curve Coefficients

Linear (degree=n =1)


Quadratic (degree =n=2)
Cubic (degree =n=3)
Quartic (degree= n=4)
Quintic (degree =n=5)

For ex. Quartic Bezier curve (n=4) which is given by,

P(u) = 1.P0 (1 – u )4 + 4 P1 u (1 – u )3 + 6 P2 u2 (1 – u )2 + 4 P3 u3 (1 – u ) + 1.P4 u 4

You might also like