Results 1 to 1 of 1

Thread: Catmull-Rom interpolation

  1. #1

    Thread Starter
    Fanatic Member VBAhack's Avatar
    Join Date
    Dec 2004
    Location
    Sector 000
    Posts
    617

    Catmull-Rom interpolation

    I took the liberty of starting a new thread since it really is a separate topic from the Parametric Cubic Spline tutorial post (though related):

    http://www.vbforums.com/showthread.php?t=481546

    Quote Originally Posted by frankly747 View Post
    Hi. Thanks for replying. But, if the P matrices are two columns, then the final answer will be a 1 X 2, that is, one row two columns

    ( 1x4 * 4X4 * 4X2 ), where 1X4 is the matrix of the interpolant (cubed, squared, raised to one and constant), 4X4 is the 'M' matrix and the 4X2 is the matrix you are proposong).

    Thus, if I have a 1 X 2, this doesn not sound right since the answer I seek is a single value (the value of y, given an x).
    I don't know that much about Catmull-Rom, but I do know they are parametric splines (like Bezier curves) where x and y are each functions of a parameter t (u is sometimes used) that varies from 0 to 1. In other words:

    x = f1(t)
    y = f2(t)

    If you want to know the value of y for a specific x, you must first find the value of t the produces the x you want, then calculate y. You are right that the result of a specific value of [1 t t2 t3] multiplied by M and then by P results in a 1x2, which are the x & y values associated with the value of t.

    For the control points you chose, x=1 corresponds to t=0 (because it is the 2nd control point and Catmull-ROM interpolates between the 2nd and 3rd control points), and the result is exactly what you expect. I tried it.

    The key is understanding that the splines are parametric in nature and that the equations produce x and y for a given value of t (between 0 and 1). It works. The following references may help:

    http://www.mvps.org/directx/articles/catmull/

    http://www.cs.cmu.edu/~462/projects/...catmullRom.pdf
    Last edited by VBAhack; Jan 22nd, 2010 at 04:39 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width