Spline Interpolation

Document Sample
Spline Interpolation Powered By Docstoc
					    Spline Interpolation




     Abdennour El Rhalibi

1
     Position Interpolation Problem

    Generate a path through points at designated times with smooth motion




2
    Interpolation Qualities

      • Want smooth curves
      • Local control
         – Local data changes have
            local effect
      • Continuous with respect to
        the data
         – No wiggling if data
            changes slightly
      • Low computational effort




3
     Continuity

    • Describe curves in terms of
      their continuity in a segment
      and between segments

    • Parametric continuity Cx
       – Only P is continuous: C0
          • Positional continuity
       – P and first derivative are
         continuous: C1
          • Tangential continuity
       – P + first + second: C2
          • Curvature continuity




4
    Linear Interpolation: Simple Case

    • When we lirp, we are given two values of a quantity; we
      determine its value somewhere between these.
       – To do this, we assume that the graph of the quantity is a line
         segment (between the two given values).
    • Here is a simple case:
       – When t = 0, the quantity is equal to a.
       – When t = 1, the quantity is equal to b.
       – Given a value of t between 0 and 1, the interpolated value of

                                   1  t  a  t  b.
         the quantity is



        – Check that this satisfies all the requirements.
        – Note: We only do this for t between 0 and 1, inclusive.



5
    Linear Interpolation: General Case

    • What if we are not given values of the quantity at 0 and 1?
      – Say the value at s1 is a and the value at s2 is b, and we want
        to find the interpolated value at s.
      – We set

                                    s  s1
                                t         ,
                                   s2  s1
        – and proceed as before:



                     ed_value  1  t  a  t  b.
            interpolat

6
       Curves

     Explicit form: y = f(x)
      Implicit form: 0 = f(x,y)


                         x = f(u)
    Parametric form:
                        y = g(u)




7
    Simple line
     •   The simplest form of interpolation is a straight line
         from a control point A, to a control point B.

     •   I will use Ax to denote the x-coordinate of control
         point A, and Ay to denote the y-coordinate.
     •   The same goes for B.

     •   I am introducing another variable, b, just to make it
         a bit more simple to read the functions.
     •   However, the variable b is only a in disguise, b is
         always equal to 1-a.
     •   So if a = 0.2, then b = 1-0.2 = 0.8. So when you see
         the variable b, think: (1-a).

     •   This parametric curve describes a line that goes
         from point A, to point B when the variable a goes
         from 1.0 to 0.0:


                             }
     • X(a) = Ax·a + Bx·b
     • Y(a) = Ay·a + By·b             P(a) = Ax·a + Bx·(1-a)
     • Z(a) = Az·a + Bz·b

8
    Simple line
     •   This parametric curve describes a line that goes from
         point A, to point B when the variable a goes from 1.0 to
         0.0:

     • X(a) = Ax·a + Bx·b
     • Y(a) = Ay·a + By·b
     • Z(a) = Az·a + Bz·b

     •   If you set a = 0.5
     •   (and thus also b = 0.5, since b = 1.0-a = 1.0-0.5 = 0.5)
     •   then X(a), Y(a) and Z(a) will give you the 3D coordinate of
         the point on the middle of the line from point A to point B.
     •
     •   Note that the reason this works is because a + b is always
         equal to one, and when you multiply something with one,
         it will stay unchanged.

     •   This makes the curve behave predictably and lets you
         place the control points anywhere in the coordinate
         system, since when a = 1.0 then b = 0.0
         thus making the point equal to one of the control points,
         and completely ignoring the other one.

9
     Linear interpolation
     • Curve continuity ?

     • Locality ?

     • Computational effort ?




10
     Linear interpolation

      • Curve continuity ?
         – -- Low (C0)
      • Locality ?
         – +
      • Computational effort ?
         – ++
         – P(a) = Ax·a + Bx·(1-a), a [0..1]




     Important Criteria Continuity is missing
            for Linear Interpolation

11
     Quadratic
 • Ok, now we have done lines, but what about curves?
 (a+b), where b = (1.0-a) is the key.

 •    We know that a polynomial function is a curve, so why not try to
      make (a+b) a polynomial function?
 •    Let's try:
 • (a+b)² = a² + 2a·b + b²
 •    Knowing that b=1-a we see that a² + 2·a·b + b² is still equal to one,
 •    since (a+b) = 1, and 1² = 1.

 •    We now need three control points, A, B and C, where A and C are
      the end points of the curve, and B decides how much and in
      which direction it curves.

 •    Except for that, it is the same as with the parametric line.

 • X(a) = Ax·a² + Bx·2·a·b + Cx·b²
 • Y(a) = Ay·a² + By·2·a·b + Cy·b²
 • Z(a) = Az·a² + Bz·2·a·b + Cz·b²
                                               }
                      P(a) = Ax·a² + Bx·2·a·(1-a) + Cx·(1-
                              a)²
12
     Quadratic
      This parametric curve describes a curve that goes
         from point A, to point C in the direction of C when
         the variable a goes from 1.0 to 0.0:

      • X(a) = Ax·a² + Bx·2·a·b + Cx·b²
      • Y(a) = Ay·a² + By·2·a·b + Cy·b²
      • Z(a) = Az·a² + Bz·2·a·b + Cz·b²

      •   If you set a = 0.5, then a² = 0.25, 2·a·b = 0.5 and
      •   b² = 0.25 giving the middle point, B, the biggest
          impact and making point A and C pull equally to
          their sides.

      •   If you set a = 1.0, then a² = 1.0, a·b = 0.0 and b² = 0.0
          meaning that result is the control point A itself,
      •   Just the same as setting a = 0.0 will return the
          coordinates of control point C.



13
     Polynomial interpolation
     • Curve continuity ?

     • Locality ?

     • Computational effort ?




14
      Example: Polynomial interpolation

     • Curve continuity ?
        – ++
     • Locality ?
        – --
     • Computational effort ?
        – +
        – P(a) = Ax·a² + Bx·2·a·(1-a) + Cx·(1-a)²




                    Important Criteria of Locality is missing
                         for Polynomial Interpolation


15
     Cubic
 •   We can also increase the number of control points
     using (a+b)³ instead of (a+b)², giving you more control
     over how to bend the curve.


 • (a+b)³ = a³ + 3·a²·b + 3·a·b² + b³
 •   Now we need four control points A, B, C and D, where
     A and D are the end points.


 • X(a) = Ax·a³ + Bx·3·a²·b + Cx·3·a·b² + Dx·b³
 • Y(a) = Ay·a³ + By·3·a²·b + Cy·3·a·b² + Dy·b³
 • Z(a) = Az·a³ + Bz·3·a²·b + Cz·3·a·b² + Dz·b³

 •   It still works the same way as the previous ones, as a
     goes from 1.0 to 0.0 (and thus b from 0.0 to 1.0) the
     functions will return coordinates on a smooth line
     from control point A to control point D, curving
     towards B and C on the way.

16
   Cubic
   • X(a) = Ax·a³ + Bx·3·a²·b + Cx·3·a·b² +
     Dx·b³
   • Y(a) = Ay·a³ + By·3·a²·b + Cy·3·a·b² +
     Dy·b³
   • Z(a) = Az·a³ + Bz·3·a²·b + Cz·3·a·b² +
     Dz·b³
   •   You can easily use (a+b) to the power of n and get n+1
       control points (where n is any integer equal to, or
       greater than one).
   •   But the more control points you have, the more
       computational effort is needed.

   •   Personally I like the cubic ones best. You can easily
       make circles with them, and you can control the
       direction of the curve independently at each control
       point.

   •   Curve continuity ?
   •   ++
   •   Locality ?
   •   -
   •   Computational effort ?
17 •   +
     Particle Motion

     • A curve in 3-dimensional space


                  p(t )  x(t ), y(t ), z(t )




             World
           coordinates


18
     Keyframing Particle Motion

     • Find a smooth function p(t ) that passes through
       given keyframes (ti , pi ), 0  i  n.

                             (t1 , p1 )
             (t0 , p 0 )                                (t3 , p 3 )

                                          (t2 , p 2 )


                 World
               coordinates

19
     Polynomial Curve

     • Mathematical function vs. discrete samples
        – Compact
        – Resolution independence


     • Why polynomials ?            x(t )  a x t 3  bx t 2  c x t  d x
        –   Simple
        –   Efficient               y (t )  a y t 3  by t 2  c y t  d y
        –   Easy to manipulate
        –   Historical reasons      z (t )  a z t 3  bz t 2  c z t  d z
                                                     or
                                      p(t )  at 3  bt 2  ct  d

20
     Degree and Order

     • Polynomial
       – Order n+1 (= number of coefficients)
       – Degree n


                                    n 1
           x(t )  ant  an1t
                         n
                                              a1t  a0




21
     Polynomial Interpolation
     • Linear interpolation with a polynomial of degree 1

                                                   a1t0  a0  x0
                                 (t1 , x1 )
                                                   a1t1  a0  x1
     (t0 , x0 )
                                                   1 t0  a0   x0 
                                                   
                                                   1 t  a    x 
                                                            
                  x(t )  a1t  a0                    1  1    1
         (eq.1)
                      0  t 1

     • This is a linear equation and coefficient   a1 and a0   are unknown
     • Let’s write this in matrix form…


22
     Linear Interpolation
     • Linear interpolation equation in matrix form
                                 (t1 , x1 )

     (t0 , x0 )
                                                   a0 
                                               C  
                                                  a 
                                                   1
                  x(t )  a1t  a0
       (eq.1)
                                                                  x(t )  T .C
                                              T  (1     t)

     • If you multiply these you will get the equation   (eq.1)

     • Now our unknowns are the coefficients stored in column vector C
     • We need to find these unknowns before we can do anything…

23
     Linear Interpolation
     • Let’s rewrite C to this:                  C  M. G
     • This gives us final equation             x(t )  T .M .G
     • M is called the basis function and G is the geometric constraints
       vector.
                                       1 1 
                T  (t     1)          1 0
                                   M                        P 
                                                      G    1
                                                                P2 
        x(t )  T .M .G
                                  x(t )  (t * 1  1*1) * P1  (t ) * P 2
                                         (1  t ) * P1  (t ) * P 2
     • Which is our standard linear interpolation formula…


24
     Polynomial Interpolation
     • Quadratic interpolation with a polynomial of degree 2
                                                       a2t0  a1t0  a0  x0
                                                          2
                  (t1 , x1 )
                                                       a2t12  a1t1  a0  x1
                                                       a2t 2  a1t 2  a0  x2
                                                           2


                                    (t2 , x2 )
 (t0 , x0 )                                            1 t 0    t0  a0   x0 
                                                                   2
                                                                       
                                                       1 t1     t1  a1    x1 
                                                                   2

                                                       1 t      t 2  a2   x2 
               x(t )  a2t  a1t  a0
                                                                   2
                               2                           2           

     • Curves are just a generalisation of the previous approach
     • The only thing that changes in deriving the formula is that there are
       more geometric constraints.
         – 3 for quadratic
         – 4 for Cubic

25
     Polynomial Interpolation

      • Polynomial interpolation of degree n
                                             1    t0   t0  a0   x0 
                                                           2
                                                               
       (t1 , x1 )                            1    t1   t1  a1   x1 
                                                           2

                                                             
                                                                
                                             1            2 
                                                         t n  an   xn 
                                (tn , xn )
(t0 , x0 )                                        tn               
                                              x(t )  ant    a1t  a0
                                                         n

      • Curves are just a generalisation of the previous
        approach
      • The only thing that changes in deriving the formula is
        that there are more geometric constraints.
             – (n+1) for degree n.

26
     Spline Interpolation

     • Piecewise smooth curve
        – Low-degree (cubic for example) polynomial
        – Uniform vs. non-uniform knot sequences


                       x1            x3

      x0                    x2
                                                      xn




           t0     t1        t2      t3                t4   Time

27
     Basis Functions

     • A linear space of cubic polynomials
        – Monomial basis     (t 3 , t 2 , t 1 , t 0 )

                   x(t )  a3t  a2t  a1t  a0
                                   3              2


        – The coefficients   ai   do not give tangible geometric meaning




28
     Spline Interpolation
     • Piecewise smooth curve
         – Low-degree (cubic for example) polynomial
         – Uniform vs. non-uniform knot sequences

                            x(t )  a3t 3  a2t 2  a1t  a0
                                           0  t 1
     • Again in Matrix form we have

            x(t )  T .M .G                   T  [t   3
                                                           t   2
                                                                   t 1]

     • So what is the geometric constraints vector and the basis function?
     • This depend on the application and splines form used…




29
     Spline curves

      • Many different types
      • Some are better for interpolation
         – Others – for geometric modeling
      • We will study:
         – Hermite interpolation
         – Catmull-Rom Splines
         – Blended parabolas
         – Bezier curves
      • Other types:
         – Splines with tension
         – B-splines
         – NURBS
      • Let’s see first Hermite Curve…

30
     Hermite Curve Interpolation
     • The curve is controlled by a start point, end point and tangent
       vectors at the start and end-points of the curve.
     • The curve passes through the start and end point and the tangent
       vectors control the velocity and the direction at the start and end
       points.
     • The whole story of parametric splines is in deriving their coefficients.
     • How we do that, by satisfying constraints set by the knots and
       continuity conditions (C0, C1, C2), is what classifies the spline
       system and distinguishes the different systems.




31
     Hermite splines

     • Hermite curves are very easy to calculate but also
       very powerful.
     • They are used to smoothly interpolate between key-
       points (like object movement in keyframe animation
       or camera control).
     • Understanding the mathematical background of
       hermite curves will help you to understand the entire
       family of splines :
        – Cardinal Splines
        – Catmull-Rom Splines
        – Bezier
        – Kochanek-Bartels Splines (also known as TCB-
          Splines)

32
     Hermite splines

     • To calculate a hermite curve you need the following
       vectors:
        – P1: the startpoint of the curve
        – T1: the tangent (e.g. direction and speed) to how the curve
          leaves the startpoint
        – P2: he endpoint of the curve
        – T2: the tangent (e.g. direction and speed) to how the curves
          meets the endpoint




33
     Hermite splines

     • These 4 vectors are simply multiplied with 4
       hermite basis functions and added together.


     •   h1(t) = 2t3 - 3t2 + 1
     •   h2(t) = -2t3 + 3t2
     •   h3(t) = t3 - 2t2 + t
     •   h4(t) = t3 - t2

     • Hermite basis functions


34
     Hermite splines

     • 4 degrees of freedom, 2 at each end to control C0 and C1
       continuity at each end.
     • Polynomial can be specified by the position of, and gradient at,
       each endpoint of curve.
     • Determine: x = X(t) in terms of x0, x0/, x1, x1/
        Now:

                  X(t) = a3t3 + a2t2 + a1t + a0

            and   X/(t) = 3a3t2 + 2a2t + a1



35
     Finding Hermite coefficients

     Substituting for t at each endpoint:
     x0 = X(0) = a0                         x0/ = X/(0) = a1
     x1 = X(1) = a3 + a2 + a1 + a0          x1/ = X/(1) = 3a3 + 2a2+ a1
       And the solution is:
     a0 = x 0                               a1 = x0/
     a2 = -3x0 – 2x0/ + 3x1 – x1/           a3 = 2x0 + x0/ - 2x1 + x1/

     h1(t) = 2t3 - 3t2 + 1
     h2(t) = -2t3 + 3t2
     h3(t) = t3 - 2t2 + t
     h4(t) = t3 - t2
     Hermite basis functions

36
     Finding Hermite coefficients

     And the solution is:
     a0 = x 0      H3         H2      H4
     a1 =   H1    x0 /
     a2 = -3x0 – 2x0/ + 3x1 – x1/
     a3 = 2x0 + x0/      - 2x1 + x1/


     h1(t) = 2t3 - 3t2 + 1        -> X0
     h2(t) = -2t3 + 3t2           -> X1
     h3(t) = t3 - 2t2 + t         -> X0’
     h4(t) = t3 - t2              -> X1’

     Hermite basis functions

37
        The Hermite matrix: MH

     The resultant polynomial can be expressed in matrix form:
                           X(t) = TTMHC            ( C is the control vector)
                                     2    1  2 1   x0 
                                      3  2 3  1  x / 
                       
               X (t )  t 3 t 2      
                                  t 1
                                     0    1  0
                                                    0 
                                                 0   x1 
                                                   / 
                                      1   0  0  0   x1 
                             T                 H           C
       We can now define a parametric polynomial for each
       coordinate required independently, ie. X(t), Y(t) and Z(t)
       To calculate a point on the curve you build the vector T,
       multiply it with the matrix H and then multiply with C

38
       Hermite Basis (Blending) Functions

     The graph shows the shape of the four basis
     functions – often called blending functions.
     Take a closer look at functions h1 and
     h2:
     - h1 starts at 1 and goes slowly to 0.         x0                        x1
     -h2 starts at 0 and goes slowly to 1.               h1              h2

     Now multiply the startpoint with h1 and
     the endpoint with h2.
     Let s go from 0 to 1 to interpolate
     between start and endpoint.
                                                               x0/
     h3 and h4 are applied to the tangents in the              h3
     same manner.
     They make sure that the curve bends in the
                                                         x1/        h4
     desired direction at the start and endpoint

39
     Displaying Hermite curves.

     • Simple :
        –   Loop through t – select step size to suit.
        –   Plug x values into the geometry matrix.
        –   Evaluate P(t)  x value for current position.
        –   Repeat for y & z independently.
        –   Draw line segment between current and previous point.

     • Joining curves:
        – Coincident endpoints for C0 continuity
        – Align tangent vectors for C1 continuity




40
       Family of Hermite curves.


     y(t)
                                   Note :
                                   Start points on left.




                                                x(t)

41
     Hermite splines

     •   moveto (P1);                       // move pen to startpoint
     •   for (int t=0; t < steps; t++)
     •   { float s = (float)t / (float)steps; // scale s to go from 0 to 1
     •   float h1 = 2s3 - 3s2 + 1;              // calculate basis function 1
     •   float h2 = -2s3 + 3s2;                // calculate basis function 2
     •   float h3 = s3 - 2s2 + s;        // calculate basis function 3
     •   float h4 = s3 - s2;             // calculate basis function 4
     •   // multiply and sum all functions
     •   // together to build the interpolated point along the curve.
     •   vector p = h1*P1 + h2*P2 + h3*T1 + h4*T2;
     •   // draw to calculated point on the curve
     •   lineto (p)
     •   }

                               PseudoCode

42
     Why cubic polynomials ?

     • Cubic (degree of 3) polynomial is a lowest-degree
       polynomial representing a space curve

     • Quadratic (degree of 2) is a planar curve
        – Eg). Font design


     • Higher-degree polynomials can introduce unwanted
       wiggles




43
     Bézier Curves


     • Hermite cubic curves are difficult to model – need to
       specify point and gradient.
     • It’s hard to guess what a curve will look like using the
       tangents
     • It is more intuitive to only specify points.
     • Bézier curves specified 2 endpoints and 2 additional
       control points to specify the gradient at the endpoints.
     • Can be derived from Hermite matrix:
        – Two end control points specify tangent




44
      Bézier Matrix


     • The cubic form is the most popular
     • X(t) = TTMBC     (MB is the Bézier matrix)
     • With n=4 and r=0,1,2,3 we get:

                                      1   3    3   1 q0 
                                      3    6        0  q1 
               
      X (t )  t   3
                       t   2
                               t    
                                   1 
                                      3   3
                                                 3
                                                 0
                                                         
                                                      0   q2 
                                                        
                                      1    0    0    0  q3 

     • Similarly for Y(t) and Z(t)



45
     Bezier Curve
     • Bernstein basis functions
                                                         B0 (t )  (1  t ) 3
                                                          3


                                                         B13 (t )  3t (1  t ) 2
                  n
         B (t )   (1  t ) n i t i
           i
            n
                  i                                    B2 (t )  3t 2 (1  t )1
                                                          3


                                                       B3 (t )  t 3
                                                          3


     • Cubic polynomial in Bernstein bases
        p(t )  b 0 B0 (t )  b1B13 (t )  b 2 B2 (t )  b3 B3 (t )
                     3                          3            3


                 (1  t ) b 0  3t (1  t )2b1  3t (1  t )b 2  t b 3
                         3                           2                   3


     • Bezier Control points (control polygon)
                                               b0 , b1 , b 2 , b3
46
      Bézier blending functions



     This is how they look –
     The Convex Hull property
     holds, ie. The functions      q0             q3
     sum to 1 at any point along
     the curve.                         q1   q2

     Endpoints have full weight
     The weights of each
     function is clear and the
     labels show the control
     points being weighted.

47
     Properties of Bezier Curves

     • The curve is contained in the convex hull of the
       control polygon

                    0  B (t )  1 if 0  t  1
                           3
                           0

     • The curve is invariant under affine transformation
        – Partition of unity of Bernstein basis functions



     • End point interpolation
                                      p(0)  b 0
                                      p(1)  b 3

48
     Properties of Cubic Bezier Curves

     • The tangent vectors to the curve at the end points are
       coincident with the first and last edges of the control
       point polygon
                                1
                        p' (0)  (b1  b 0 )
                                3
                                1
                        p' (1)  (b 3  b 2 )
                                3




49
      Bézier Curves


     Note the Convex Hull has been shown as                 P2
     a dashed line – use as a bounding extent
     for intersection purposes.                                            P4


                                                 P1
                                                                 P3
                                                      P3



                                                                      P4
                                                       P1


                                            P2


50
     Bezier Curve Versatility
     • This simple definition of 4
       Points can be used to create
       many complex geometric
       figures




51
     Bezier Splines with Tangent Conditions

     • Find a piecewise Bezier curve that passes through
       given keyframes and tangent vectors

                           (t1 , p1 )
                                                      (t3 , p 3 )


          (t0 , p 0 )
                                        (t2 , p 2 )

     • Adobe Illustrator provides excellent user interfaces
       for cubic Bezier splines

52
     Cardinal Splines




53
     Cardinal Splines

     • Cardinal splines are just a subset of the hermite curves.
     • They don't need the tangent points because they will be
       calculated from the control points.
     • We'll lose some of the flexibility of the hermite curves,
       but as a tradeoff the curves will be much easier to use.
     • Ti = a* (P i+1 – P i-1)
     • Formula for tangents with a being a constant which
       affects the tightness of the curve.




54
     Catmull-Rom splines




55
     Catmull-Rom splines
     • Catmull-Rom spline interpolates control points. The gradient at each
       control point is the vector between adjacent control points.
     • The Catmull-Rom spline is again just a subset of the cardinal splines.
     • You only have to define a as 0.5, and you can draw and interpolate
       Catmull-Rom splines.
     • Tangent information is derived from data points
     • At the ends:
         • User provides tangents
         • Tangent directed towards P_1-(P_2-P_1)

                                                  1         
                                        Pi ' (u )  ( Pi 1  Pi 1 )
                                                   2


56
      Catmull-Rom splines

     Catmull-Rom spline interpolates control points. The gradient at
     each control point is the vector between adjacent control points.
      The resultant polynomial can be expressed in matrix form:
               X(t) = 0.5 * TTMHC                ( C is the control vector)
                      P i (t )  T  M CR  GB
                                     1 3  3 1   Pi 3 
                                     2  5 4  1  P 
                              1                     i 2 
                              T  
                              2      1 0  1  0   Pi 1 
                                                  
                                     0  2  0  0   Pi 




57
     Catmull-Rom Splines

     • Polynomial interpolation without tangent conditions
        – C 1-continuity
                                                            p i 1  p i 1
                                                 p' (ti ) 
                          (t1 , p1 )                               2



          (t0 , p 0 )                                        (t3 , p 3 )
                                       (t2 , p 2 )




58
     Kochanek-Bartels Splines: TCB

 • The kb-splines (mostly known from 3d-Studio Max) are
   nothing more than Hermite curves and a handfull of
   formulas to calculate the tangents.
 • These curves have been introduced by D. Kochanek and
   R. Bartels in 1984 to give animators more control over
   keyframe animation.
 • They introduced three control-values for each keyframe
   point:
      – Tension: How sharply does the curve bend?
      – Continuity: How rapid is the change in speed and direction?
      – Bias: What is the direction of the curve as it passes through the
        keypoint?



59
     Kochanek-Bartels Splines: TCB




60
     Kochanek-Bartels Splines: TCB




61
     Kochanek-Bartels Splines: TCB




62
     Finer curve shape controls

     • Can adjust the shape by playing with tangent values
        – Direction fixed
     • Splines with tension t: apply scaling to tangent vector
        – Low tension = greater tangents = flatter connections = curve
          farther from straight line
        – High tension = smaller tangents = sharper connection =
          curve closer to straight line
     • Sometimes want to break continuity
     • Can change tangent directions
        – Continuity parameter c
        – Allows to change how the far are two tangents
     • Sometimes want to bias tangent to favor one of the
       sides
        – Bias parameter b

63
     Finer curve shape controls

 • Put all three (t,c,b) together:
 • Can use these wherever tangents are needed
 • Default (0,0,0) gives Catmull-Rom spline




64
     Comparison of Basic Cubic Splines




65

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:23
posted:9/1/2011
language:English
pages:65