Curve Modeling Dr. S.M. Malaek Assistant: M. Younesi

Preview:

Citation preview

Curve Modeling

Dr. S.M. MalaekAssistant: M. Younesi

Parametric Polynomials

Parametric Polynomials For interpolating n point we need a

polynomial of degree n-1.

Parametric PolynomialsPolynomial interpolation has several disadvantages: If the polynomial degree is high, unwanted wiggles

are introduced. If the polynomial degree is law, it gives too little

flexibility. No local operations.

Solution:Polynomial Splines

Spline Curve

Spline Curve In drafting terminology, a spline is a

flexible stripflexible strip used to produce a smooth curve through a designated set of points.

Flexible Strip

Spline Curve Several small weightsweights are distributed

along the length of the strip to hold it in position on the drafting table as the curve is drawn.

Weights

Spline Curve The term spline curvespline curve originally

referred to a curve drawn in this manner.

Spline Curve In modeling, the term spline curvespline curve refers

to a any composite curve formed with polynomial section satisfying specified continuity conditions at the boundary of the pieces.

Control Points A spline curve is specified by given a set of

coordinate positions, called control points.

Control points indicates the general shape of the curve.

Control Points A spline curve is defined,

modified, and manipulated with operations on the control points.

Convex Hull The convex polygon boundary

that enclose a set control points is called the convex hull.

Convex Hull The convex hull is a rubber band stretched

around the positions of the control points so that each control point is either on the perimeter of the hull or inside it.

ConvexRemind: A region is convex if the line segment

joining any two points in the region is also within the region.

Shape

of

the Spline Curve

Shape of the Curve Control points are fitted with piecewise

continuous parametric polynomial function in one of two way:

1.1. Interpolation SplinesInterpolation Splines

2.2. Approximation SplinesApproximation Splines

Interpolation Splines When polynomial sections are fitted so that

the curve passespasses through each control point,

the resulting curve is said to interpolateinterpolate the set of control points.

Interpolation Splines Interpolation curves are commonly used to

digitize drawing or to specify animation paths.

Approximation Splines When polynomial sections are fitted to the

general control point path withoutwithout necessarily passing through any control point, the resulting

curve is said to approximateapproximate the set if control points.

Approximation Splines Approximation curves are uses as design tools

to structure object surfaces.

ParametricContinuity Conditions

Parametric Continuity Conditions To represent a curve as a series of

piecewise parametric curves, these

curves to fit together reasonably …Continuity!

Parametric Continuity Conditions Each section of a spline is described

with a set of parametric coordinate functions of the form:

21),(),(),( uuuuzzuyyuxx

Parametric Continuity Conditions Let C1(u) and C2(u) , be two

parametric Curves.

We set parametric continuity by matching the parametric derivation of adjoining curve sections at their common boundary.

10 u

Parametric Continuity Conditions Zero order parametric (C0): Simply the

curves meet, C1(1) = C2(0) .

First order parametric (C1): The first parametric derivations for two successive curve sections are equal at their joining point, C´1(1)= C´2(0)

Parametric Continuity Conditions Second order parametric (C2): Both the first

and second parametric derivatives of the two curve sections are the same at the intersection, C˝1(1)= C˝2(0)

Parametric Continuity ConditionsSimple Example: The curve consists of two parabolas, domains [-1,0] and [0,1],

respectively

f(u) = ( u, -u2, 0 )

g(v) = ( v, v2, 0 ) f'(u) = ( 1, -2u, 0 ) ,f''(u) = ( 0, -2, 0 )

g'(u) = ( 1, 2v, 0 ) ,g''(v) = ( 0, 2, 0 ) Two curves are C1 continuous at the origin. f''(0) = ( 0, -2, 0 ) is not equal to g''(v) = ( 0, 2, 0 ), they are not

C2 continuous at the origin.

Curvature of f(u) = 2/(1 + 4u2)1.5 Curvature of g(v) = 2/(1 + 4v2)1.5

Two curve segments may be C1 continuous and even curvature continuous, but not C2

continuous

Problems withParametric Continuity Conditions

Representation

Problems with Parametric ContinuityTwo line segments:

f'(u) = B - A

g'(v) = C - B Thus, f'(u) = B - A is, in general, not equal to g'(v) = C - B and consequently

these two line segments are not C1 continuous at the joining point B!

Is it strange?Is it strange?Re-parameterizing the curve segments may overcome the problem

F(u) = A + u(B - A)/ | B - A |

G(v) = B + v(C - B)/ | C - B |

f(u) = A + u(B - A)

g(v) = B + v(C - B)

u is in the range of 0 and | B - A | and v is in the range of 0 and | C – B|

Problems with Parametric ContinuitySemi circle:

At (0,1,0) = f(1) = g(0). ) C0)f'(u) = ( PI u sin(u2 PI/2), PI u cos(u2 PI/2), 0 )

f''(u) = ( PI2 u2 cos(u2 PI/2), -PI2 u2 sin(u2 PI/2), 0 )

f'(u) × f''(u) = ( 0, 0, -PI3 u3 )

| f'(u) | = PI u

| f'(u) × f''(u) | = PI3 u3

k(u) = 1

g'(v) = ( PI v cos(v2 PI/2), -PI v sin(v2 PI/2), 0 )

g''(v) = ( -PI2 v2 cos(v2 PI/2), -PI2 v2 cos(v2 PI/2), 0 )

g'(v) × g''(v) = ( 0, 0, -PI3 u3 )

| g'(v) | = PI v

| g'(v) × g''(v) | = PI3 v3

k(v) = 1

f(u) = ( -cos(u2 PI/2), sin(u2 PI/2), 0 )

g(v) = ( sin(v2 PI/2), cos(v2 PI/2), 0 )

Problems with Parametric ContinuitySemi circle:

Let u2 = p in f(u) and let v2 = q in g(v). The new equations are:

f(p) = ( -cos(p PI/2), sin(p PI/2), 0 )

g(q) = ( sin(q PI/2), cos(q PI/2), 0)

Their derivatives are

f'(p) = ( (PI/2) sin(p PI/2), (PI/2) cos(p PI/2), 0 )

f''(p) = ( (PI/2)2 cos(p PI/2), -(PI/2)2 sin(p PI/2), 0 )

g'(q) = ( (PI/2) cos(q PI/2), -(PI/2) sin(q PI/2), 0 )

g''(q) = ( -(PI/2)2 sin(q PI/2), -(PI/2)2 cos(q PI/2), 0 )

Therefore, after changing variables, both f'(1) and g'(0) are equal to ( PI/2, 0, 0 ) and hence they are C1 continuous. Moreover, both f''(1) and g''(0) are equal to ( 0, -(PI/2)2, 0 ) and hence they are C2

continuous! They are also curvature continuous because they have curvature 1 everywhere (remember they are circles).

GeometricContinuity Conditions

Geometric Continuity Conditions Two curve segments are said Gk

geometric continuous at the joining point if and only if there exists two parameterizations, one for each curve segment, such that all i-th derivatives, i less than or equal to k, computed with these new parameterizations agree at the joining point.

Geometric Continuity Conditions Two C0 curve segments are said G1 geometric

continuous at the joining point if and only if vectors f'(u) and g'(v) are in the same direction at the joining point. Note that f'(u) and g'(v) are evaluated at the joining point.

The tangent vectors point to the opposite directions, and, as a result, they are not G1 at the joining point

Geometric Continuity Conditions

Two C1 curve segments are said G2 geometric continuous at the joining point if and only if vector f''(u) - g''(v) is parallel to the tangent vector at the joining point. Note that f''(u) and g''(v) are evaluated at the joining point.

Geometric Continuity Conditions Example:two parabola segments with joining point at ( 0, 1, 0): f(u) = ( -1 + u2, 2u - u2, 0 )

g(v) = ( 2u - u2, 1 - u2, 0 )

f'(u) = ( 2u, 2 - 2u, 0 ) f''(u) = ( 2, -2, 0 ) f'(u) × f''(u) = ( 0, 0, -4 ) | f'(u) | = 2SQRT(1 - 2u + 2u2 ) | f'(u) × f''(u) | = 4 k(u) = 1/(2(1 - 2u + 2u2)1.5)

g'(v) = ( 2 - 2v, -2v, 0 ) g''(v) = ( -2, -2, 0 ) g'(v) × g''(v) = ( 0, 0, -4 ) | g'(v) | = 2SQRT(1 - 2v + 2v2 ) | g'(v) × g''(v) | = 4 k(v) = 1/(2(1 - 2v + 2v2)1.5)

Geometric Continuity Conditions From f'(1) = g'(0) = ( 2, 0, 0 ), we know that these two curve

segments are C1 at the joining point. Since f''(1) = ( 2, -2, 0 ) is not equal to g''(0) = ( -2, -2, 0 ), they are not C2.

Since the curves are C1, checking for G2 is meaningful. Since f''(1) - g''(0) = ( 4, 0, 0 ) is parallel to the tangent vector ( 2, 0, 0 ) at the joining point, these two curve segments are G2 continuous at the joining point ( 0, 1, 0 ).

Geometric Continuity Conditions

Geometric Continuity Conditions: Only require parametric derivatives of the two sections to be proportional to each other at their common boundary instead of equal to each other.

Geometric Continuity Conditions Zero order geometric (G0): Same as C0

C1(1) = C2(0) First order geometric (G1): The parametric first

derivatives are proportional at the intersection of two successive sections.

C´1(1)= αC´2(0) Second order geometric (G2): Both the first and

second parametric derivatives of the two curve sections are proportional at their boundary,

C˝1(1)= αC˝2(0)

Parametric & Geometric Continuity A curve generated with geometric

continuity condition is similar to one generated with parametric continuity , but with slight differences in curve shape.

With geometric continuity, the curve is pulled toward the section with the greater tangent vector.

Spline Interpolation

LinearLinearSpline

Interpolation

Linear Spline Interpolation Given a set of control points, linear

interpolation spline is obtained by fitting the input points with a piecewise linear polynomial curve that passes through every control points.

Linear Spline Interpolation A linear polynomial:

)10(

)(

,)(

)(

u

buauz

buauy

buaux

zz

yy

xx

10,)( uuu bap

Linear Spline Interpolation We need to determine the values of a and b in the

linear polynomial for each of the n curve section.

Substituting endpoint values 0 and 1 for parameter u:

b

au

uu

1

)( bap

b

a

p

p

11

10

1

0

Linear Spline Interpolation Solving this equation for the polynomial

coefficients:

P(u) can be written in terms of the boundary conditions:

1

0

1

0

1

10

1111

10

p

pp

p

b

a

1

0

10

111)(

p

puup

b

auu 1)(p

Mspline Mgeometry

U

Linear Spline Interpolation The matrix representation for linear spline

representation:

Mgeometry is the matrix containing the geometry constraint values (boundary condition) on the spline.

Mspline is the matrix that transform the geometric constraint values to the polynomial coefficients and provides a characterization for the spline curve (Basis Matrix).

geometrysplineu MMUP )(

Linear Spline Interpolation We can expand the matrix representation:

1

0

10),()(k

kkuubu PP

1

0

1

0

1

10

111)(

p

puu

p

puup

Blending Functions

1100

10

)()(

)()1()(

PP

PPP

ubub

uuu

Linear Spline Interpolation

The Linear spline blending functionThe Linear spline blending function::

1

0

10),()(k

kkuubu PP

1100

10

)()(

)()1()(

PP

PPP

ubub

uuu

Linear Spline Interpolation The curve is linear combination of the blending

functions. The piecewise linear interpolation is C0

continuous. For a linear polynomial, 2 constraints are

required for each segment.

A polynomial of degreeA polynomial of degree kk has has k+1 k+1 coefficientscoefficients and thus requiresand thus requires k+1k+1 independent independent constraintsconstraints to uniquely to uniquely determine it.determine it.

CubicCubicSpline

Interpolation

Cubic Spline InterpolationCubic splines are used to: Set up paths for object motion A representation for an existing object

or drawing Design object shape

Cubic splines are more flexible for modeling arbitrary curve shapes.

Cubic Spline Interpolation Given a set of control points:

Cubic interpolation spline is obtained by fitting the input points with a piecewise cubic polynomial curve that passes through every control points.

nkzyxP kkkk ,,2,1,0),,,(

Cubic Spline Interpolation A cubic polynomial:

)10(

)(

,)(

)(

23

23

23

u

ducubuauz

ducubuauy

ducubuaux

zzzz

yyyy

xxxx

10,)( 23 uuuuu dcbap

Linear Spline Interpolation

We need to determine the values of a , b, c and d in the linear polynomial for each of the n curve section.

By setting enough boundary conditions at the “joints” between curve sections we can obtain numerical values for all the coefficients.

10,)( 23 uuuuu dcbap

Cubic Spline InterpolationMethods for setting the boundary conditions

for cubic interpolation splines:

1. Natural Cubic Splines

2. Hermit Splines

3. Cardinal Splines

4. Kochanek-Bartels Splines

Natural

Cubic Splines

Natural Cubic Splines Natural cubic splines are developed

for graphics application.

Natural cubic splines have C2

continuity.

Natural Cubic SplinesIf we have n+1 control points to fit, then: We have n curve sections 4n polynomial coefficients to be

determined.3 control points (n=2)

2 curve sections

4×2 polynomial coefficients to be determined.

Natural Cubic SplinesAt each n-1 interior control points, we have 4

boundary condition: The two curve sections on either side of a control

point must first and second parametric derivatives at that control point, and each curve must pass through that control point.

At P1 interior control:

1. C´1(1)=C'2(0)

2. C˝1(1)=C˝2(0)

3. C1(1)=P1

4. C2(0)=P1

Natural Cubic SplinesAdditional equation: First control point P0

End control points Pn

5. C1(0)=P0

6. C2(1)=P2

Natural Cubic SplinesWe still need twotwo more conditions to

be able to determine values for all coefficients.

Natural Cubic SplinesMethod 1:Set the second derivatives at p0 and pn to 0

7. C˝1(0)=0

8. C˝2(1)=0

Natural Cubic SplinesMethod 2:Add a control point P-1 and a control point Pn+1.

7. P-1

8. P3

PP-1-1 PP33

Natural Cubic Splines Natural cubic splines are a mathematical

model for the drafting spline.

Disadvantage: NoNo “Local Control”: we cannot

reconstruct part of the curve without specifying an entirely new set of control points.

Hermit Splines

Hermit SplinesGiven a set of control points:

Hermit splines is an interpolating piecewise cubic polynomial with a

specified tangentspecified tangent at each control point.

nkzyxP kkkk ,,2,1,0),,,(

Hermit Splines Hermit splines can be adjusted

locally because each curve section is only dependent on its endpoint constraints (unlike the natural cubic splines).

Hermit Splines Example: Change in MagnitudeMagnitude of T0

Hermit Splines Example: Change in DirectionDirection of T0

Hermit Splines

10,)( 23 uuuuu dcbap

1

1

)1(

)0(

)1(

)0(

k

k

k

k

Dpp

Dpp

pp

pp

P(u) represents a parametric cubic point function for the section between pk and pk+1.

The boundary conditionsboundary conditions are:

Dpk and Dpk+1 are the values for the parametric derivations (slope of the curve) at control points Pk and Pk+1

Hermit Splines10,)( 23 uuuuu dcbap

d

c

b

a

p 1)( 23 uuuu

d

c

b

a

p 0123)( 2 uuu

The derivative of the point function:

d

c

b

a

Dp

Dp

p

p

0123

0100

1111

1000

1

1

k

k

k

k

We can write the constraints

in a matrix form:

1

1

)1(

)0(

)1(

)0(

k

k

k

k

Dpp

Dpp

pp

pp

Boundary conditions

Hermit Splines

Solving this equation for the polynomial coefficients:

d

c

b

a

Dp

Dp

p

p

0123

0100

1111

1000

1

1

k

k

k

k

1

1

1

1

1

1

1

0001

0100

1233

11220123

0100

1111

1000

k

k

k

k

H

k

k

k

k

k

k

k

k

Dp

Dp

p

p

M

Dp

Dp

p

pDp

Dp

p

p

d

c

b

a

MH, the Hermit matrix, is the inverse

of the boundary constraint matrix.

d

c

b

a

p 1)( 23 uuuu

1

123232323 232132)(

k

k

k

k

uuuuuuuuuu

Dp

Dp

p

p

p

1

123 1)(

k

k

k

k

Huuuu

Dp

Dp

p

p

Mp

Blending Functions

)()()()()(312110

uHuHuHuHukkkk

DpDpppP

d

c

b

a

Dp

Dp

p

p

0123

0100

1111

1000

1

1

k

k

k

k

Hermit SplinesHermit Blending Functions

Hermit Splines Hermit polynomials can be useful for some

digitizing applications where it may not be too difficult to specify or approximate the curve slopes.

For most problems in modeling, it is more useful to generate spline curve without requiring input values for

curve slopes.

But…

Cardinal

Splines

Cardinal Splines Cardinal splines are interpolating piecewise

cubics with specified endpoint tangents at the boundary of each curve section.

The difference is that we do not have to give the values for the endpoint tangents.

For a cardinal spline, the value for the slope at a control point is calculated

from the coordinates of the two adjacent control points.

Cardinal Splines A cardinal spline section is completely

specified with four consecutive control points.

The middle two control points are the section endpoints, and the other two points are used in the calculation of the endpoint slopes.

Cardinal Splines The boundary conditions:

))(1(2

1)1(

))(1(2

1)0(

)1(

)0(

2

11

1

kk

kk

k

t

t

ppP

ppP

pP

pP k

Thus, the slopes at control points pk and pk+1 are taken to be proportional to the chords and11 kk pp 2kkpp

Cardinal Splines The boundary conditions:

))(1(2

1)1(

))(1(2

1)0(

)1(

)0(

2

11

1

kk

kk

k

t

t

ppP

ppP

pP

pP k

Cardinal Splines

Parameter t is called the tension parameter.

Tension parameter controls how loosely or tightly the cardinal spline fits the input control points.

))(1(2

1)1(

))(1(2

1)0(

)1(

)0(

2

11

1

kk

kk

k

t

t

ppP

ppP

pP

pP k

Cardinal Splines

When t=0 is called the Catmull-Rom splines, or Overhauser splines.

Cardinal Splines

))(1(2

1)1(

))(1(2

1)0(

)1(

)0(

2

11

1

kk

kk

k

t

t

ppP

ppP

pP

pP k

2

1

1

23 1)(

k

k

k

k

Cuuuu

p

p

p

p

MP

0010

00

2332

22

ss

ssss

ssss

CM

2)1( ts

Cardinal Splines

))(1(2

1)1(

))(1(2

1)0(

)1(

)0(

2

11

1

kk

kk

k

t

t

ppP

ppP

pP

pP k

)()()()(

)(])23()2[(

]1)3()2[()2()(

3221101

232

231

23231

uCARuCARuCARuCAR

sususuusus

usussususuu

kkkk

kk

kk

pppp

pp

ppP

The polynomials CARk(u) for k=0,1,2,3 are

the cardinal functions.

Cardinal SplinesCardinal functions