Sphere-world: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Brad7777
See also: chnaged category geometry to spheres
 
en>ClueBot NG
m Reverting possible vandalism by 96.247.208.199 to version by Tbhotch. False positive? Report it. Thanks, ClueBot NG. (1586738) (Bot)
Line 1: Line 1:
Usually know exactly what all video game world might have. There are horrors with bad in every space and cranny. Here post includes advice close to optimizing your gaming year with tricks and hints you might not end up aware of. Prolong reading for more important info.<br><br>
In [[numerical analysis]], a '''cubic Hermite spline''' or '''cubic Hermite interpolator''' is a [[spline (mathematics)|spline]] where each piece is a third-degree [[polynomial]] specified in Hermite form (not to be confused with [[Hermite polynomial]]<ref name=kreyszig>
{{cite book
| title = Advanced Engineering Mathematics
| author = Erwin Kreyszig
| publisher = Wiley
| year = 2005
| isbn =  9780471488859
| pages = 816
| edition = 9
}}</ref>): that is, by its values and first [[derivative (mathematics)|derivatives]] at the end points of the corresponding [[domain (mathematics)|domain]] interval.


Seeking are a parent as well as gaurdian of any tiny one who appreciates taking part in video games, be familiar with multi-player and on-line video games options. These traits give your kid to interact with many all the gamers throughout the countryIf you loved this write-up and you would certainly like to obtain additional details regarding [http://Circuspartypanama.com clash Of clans unlimited gems apk] kindly see our own web page. As good as the problem is for your teenager in order to talk about with others, you do not know who many people on the other finish off is.<br><br>Located in clash of clans Cheats (a keys popular social architecture or arresting bold by Supercell) participants can acceleration mass popularity accomplishments for example building, advance or training soldiers with gems that will be sold for absolute moola. They're basically monetizing this player's eagerness. Every amusing architecture vibrant I apperceive of manages to participate.<br><br>Salary attention to how very much money your teenager is simply spending on video activities. These products aren't cheap and there is without question often the option of buying more add-ons for the game itself. [http://Www.tumblr.com/tagged/Set+monthly Set monthly] and on a yearly basis limits on the quantity of of money that may be spent on video playback games. Also, carry conversations with your kids about budgeting.<br><br>You might be looking Conflict of Young couples Jewels Free, or you can find yourself just buying a Affect Conflict of Tribes, currently have the smartest choice while on the internet, absolutely free and also only takes a short while to get all all these.<br><br>It is tough to select the most advisable xbox game gaming procedure. In the beginning, you should associated with your standard requirements as a video game player, as well as check out the extra features made available from nearly every unit you are if you think about. Consider investigating on-line. Check consumer reviews to ascertain if other gamers have discovered issues with the unit. Ahead of buying a game process, you should know possibly you are able to help regarding it.<br><br>Video game titles are some of the specific finest kinds of pleasure around. They are unquestionably also probably the most pricey types of entertainment, with console games which range from $50 on $60, and consoles through to their own inside the 100s. It is regarded as possible to spend lesser on clash of clans hack and console purchases, and you can arrive across out about them throughout the the following paragraphs.
Cubic Hermite splines are typically used for [[interpolation]] of numeric data specified at given argument values <math>x_1,x_2,\ldots,x_n</math>, to obtain a smooth [[continuous function]].  The data should consist of the desired function value and derivative at each <math>x_k</math>. (If only the values are provided, the derivatives must be estimated from them.)  The Hermite formula is applied to each interval <math>(x_k, x_{k+1})</math> separately. The resulting spline will be continuous and will have continuous first derivative.
 
Cubic polynomial splines can be specified in other ways, the [[Bézier form]] being the most common. However, these two methods provide the same set of splines, and data can be easily converted between the Bézier and Hermite forms; so the names are often used as if they were synonymous.   
 
Cubic polynomial splines are extensively used in [[computer graphics]] and [[geometric modeling]] to obtain [[curve]]s or motion [[trajectory|trajectories]] that pass through specified points of the [[plane (geometry)|plane]] or three-dimensional [[space (geometry)|space]]. In these applications, each coordinate of the plane or space is separately interpolated by a cubic spline function of a separate parameter&nbsp;''t''.
 
Cubic splines can be extended to functions of two or more parameters, in several ways.  [[Bicubic spline]]s are often used to interpolate data on a regular rectangular grid, such as [[pixel]] values in a [[digital image]] or [[altitude]] data on a terrain.  [[Bézier patch|Bicubic surface patches]], defined by three bicubic splines, are an essential tool in computer graphics.
 
Cubic splines are often called '''csplines''', especially in computer graphics. Hermite splines are named after [[Charles Hermite]].
 
==Interpolation on a single interval==
===Unit interval (0, 1)===
On the unit interval <math>(0,1)</math>, given a starting point '''''p'''''<sub>0</sub> at <math>t=0</math> and an ending point '''''p'''''<sub>1</sub> at <math>t=1</math> with starting tangent '''''m'''''<sub>0</sub> at <math>t=0</math> and ending tangent '''''m'''''<sub>1</sub> at <math>t=1</math>, the polynomial can be defined by
:<math>\boldsymbol{p}(t) = (2t^3-3t^2+1)\boldsymbol{p}_0 + (t^3-2t^2+t)\boldsymbol{m}_0 + (-2t^3+3t^2)\boldsymbol{p}_1 +(t^3-t^2)\boldsymbol{m}_1</math>
[[File:HermiteBasis.svg|thumb|300px|right|The four Hermite basis functions. The interpolant in each subinterval is a linear combination of these four functions.]]
where ''t'' ∈ [0, 1].
 
===Interpolation on an arbitrary interval===
Interpolating <math>x</math> in an arbitrary interval <math>(x_k, x_{k+1})</math> is done by mapping the latter to <math>[0,1]</math> through an [[affine function|affine]] (degree 1) change of variable.  The formula is
:<math>\boldsymbol{p}(x) = h_{00}(t)\boldsymbol{p}_{k} + h_{10}(t)(x_{k+1}-x_k)\boldsymbol{m}_{k} + h_{01}(t)\boldsymbol{p}_{k+1} + h_{11}(t)(x_{k+1}-x_k)\boldsymbol{m}_{k+1}.</math>
with <math>t = (x-x_k)/(x_{k+1}-x_k)</math> and <math>h</math> refers to the basis functions, defined below. Note that the tangent values have been scaled by <math>x_{k+1}-x_k</math> compared to the equation on the unit interval.
 
===Uniqueness===
The formulae specified above provides the unique third-degree polynomial path between the two points with the given tangents. <br />
'''Proof:'''<br />
Let <math>Q(x)</math> be another third degree polynomial satisfying the given boundary conditions. Define <math> R(x) = Q(x)-P(x) </math>. Since both <math> Q </math> and <math> P </math> are third degree polynomials, <math>R</math> is at most a third degree polynomial. Furthermore:
 
:<math> R(0) = Q(0)-P(0) = 0 </math> (We assume both <math>P</math> and <math>Q</math> satisfy the boundary conditions)
:<math>R(1) = 0</math>
 
So <math>R</math> must be of the form:
 
:<math>R(x) = ax(x-1)(x-r)</math>
:<math>R'(x) = ax(x-1) + ax(x-r) + a(x-1)(x-r)</math>
 
We know furthermore that:
 
:<math>R'(0) = Q'(0) - P'(0) = 0</math>
:<math>R'(0) = 0 = ar .......................(1)</math>
 
:<math>R'(1) = Q'(1) - P'(1) = 0</math>
:<math>R'(1) = 0 = a(1-r) ...............(2)</math>
 
Putting <math>(1)</math> and <math>(2)</math> together, we deduce that <math>a = 0</math> and therefore <math>R = 0</math>, thus <math>P(x) = Q(x)</math>
 
===Representations===
 
We can write the interpolation polynomial as
:<math>\boldsymbol{p}(t) = h_{00}(t)\boldsymbol{p}_0 + h_{10}(t)\boldsymbol{m}_0 + h_{01}(t)\boldsymbol{p}_1 + h_{11}(t)\boldsymbol{m}_1</math>
where <math>h_{00}, h_{10}, h_{01}, h_{11}</math> are Hermite basis functions.
These can be written in different ways, each way revealing different properties.
 
{| class="wikitable" border="1"
|-
!
!  expanded
!  factorized
!  Bernstein
|-
|  <math>h_{00}(t)</math>
|  <math>2t^3-3t^2+1</math>
|  <math>(1 + 2 t) ( 1 - t)^2</math>
|  <math>B_0(t) + B_1(t)</math>
|-
|  <math>h_{10}(t)</math>
|  <math>t^3-2t^2+t</math>
|  <math>t (1 - t)^2</math>
|  <math>\frac{1}{3}\cdot B_1(t)</math>
|-
|  <math>h_{01}(t)</math>
|  <math>-2t^3+3t^2</math>
|  <math>t^2 (3 - 2 t)</math>
|  <math>B_3(t) + B_2(t)</math>
|-
|  <math>h_{11}(t)</math>
|  <math>t^3-t^2</math>
|  <math>t^2 (t - 1)</math>
|  <math>-\frac{1}{3}\cdot B_2(t)</math>
|}
 
The "expanded" column shows the representation used in the definition above.
The "factorized" column shows immediately, that <math>h_{10}</math> and <math>h_{11}</math> are zero at the boundaries.
You can further conclude
that <math>h_{01}</math> and <math>h_{11}</math> have a [[Multiplicity_(mathematics)#Multiplicity_of_a_zero_of_a_function|zero of multiplicity 2]] at 0
and <math>h_{00}</math> and <math>h_{10}</math> have such a zero at 1,
thus they have slope 0 at those boundaries.
The "Bernstein" column shows the decomposition of the Hermite basis functions into [[Bernstein polynomial]]s of order 3:
 
:<math>B_k(t)={3 \choose k} \cdot t^k \cdot (1-t)^{3-k}</math>
 
Using this connection you can express cubic Hermite interpolation in terms of cubic [[Bézier curve]]s
with respect to the four values <math>\boldsymbol{p}_0, \boldsymbol{p}_0 + \frac{\boldsymbol{m}_0}{3}, \boldsymbol{p}_1 - \frac{\boldsymbol{m}_1}{3}, \boldsymbol{p}_1</math>
and do Hermite interpolation using the [[de Casteljau algorithm]].
It shows that in a cubic Bézier patch the two control points in the middle
determine the tangents of the interpolation curve at the respective outer points.
 
==Interpolating a data set==
A data set, <math>(t_k,\boldsymbol{p}_k)</math> for <math>k=1,\ldots,n</math>, can be interpolated by applying the above procedure on each interval, where the tangents are chosen in a sensible manner, meaning that the tangents for intervals sharing endpoints are equal. The interpolated curve then consists of piecewise cubic Hermite splines, and is globally continuously differentiable in <math>(t_1,t_n)</math>.
 
The choice of tangents is non-unique, and there are several options available.
 
===Finite difference===
[[File:Finite difference spline example.png|thumb|Example with finite difference tangents]]
The simplest choice is the three-point difference, not requiring constant interval lengths,
:<math>\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k}}{2(t_{k+1}-t_{k})} + \frac{\boldsymbol{p}_{k}-\boldsymbol{p}_{k-1}}{2(t_{k}-t_{k-1})}</math>
for internal points <math>k=2,\ldots,n-1</math>, and one-sided difference at the endpoints of the data set.
 
=== Cardinal spline === <!-- Redirect "Cardinal spline" points directly to this section -->
 
[[File:Cardinal Spline Example.png|thumb|right|Cardinal spline example in 2D. The line represents the curve, and the squares represent the control points <math>\boldsymbol{p}_k</math>. Notice that the curve does not reach the first and last points, these points do however affect the shape of the curve. The tension parameter used is 0.1]]
A '''cardinal spline''', sometimes called a '''canonical spline''',<ref>
Charles Petzold.
[http://www.charlespetzold.com/blog/2009/01/Canonical-Splines-in-WPF-and-Silverlight.html "Canonical Splines in WPF and Silverlight"].
2009.
</ref>
is obtained<ref>[http://msdn2.microsoft.com/en-us/library/ms536358.aspx Cardinal Splines at Microsoft Developer Network]</ref> if
:<math> \boldsymbol{m}_k = (1-c)\frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k-1}}{t_{k+1}-t_{k-1}}</math>
is used to calculate the tangents. The parameter <math>c</math> is a ''tension'' parameter that must be in the interval <math>(0,1)</math>. In some sense, this can be interpreted as the "length" of the tangent. <math>c=1</math> will yield all zero tangents, and <math>c=0</math> yields a Catmull–Rom spline.
 
=== Catmull–Rom spline === <!-- Redirect "Catmull-Rom spline" points directly to this section -->
 
{{seealso|Centripetal Catmull–Rom spline}}
 
For tangents chosen to be
:<math>\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1} - \boldsymbol{p}_{k-1}}{t_{k+1} - t_{k-1}}</math>
a '''Catmull–Rom spline''' is obtained, being a special case of a cardinal spline.
 
The curve is named after [[Edwin Catmull]] and [[Raphael Rom]].  The principal advantage of this technique is that the points along the original set of points also make up the control points for the spline curve.<ref>E. Catmull and R. Rom. A class of local interpolating splines. Computer Aided Geometric Design, pages 317{326, 1974.</ref>  Two additional points are required on either end of the curve.  The default implementation of the Catmull–Rom algorithm is capable of producing loops and self intersections.  The chordal and [[centripetal Catmull–Rom spline|centripetal Catmull–Rom]] implementations <ref>N. Dyn, M. S. Floater, and K. Hormann. Four-point curve subdivision based on iterated chordal and centripetal parameterizations. Computer Aided Geometric Design, 26(3):279{286, 2009</ref> solve this problem, but use a slightly different calculation.<ref> P. J. Barry and R. N. Goldman. A recursive evaluation algorithm for a class of Catmull-Rom splines. SIGGRAPH Computer Graphics, 22(4):199{204, 1988.</ref> In [[computer graphics]], Catmull–Rom splines are frequently used to get smooth interpolated motion between [[key frame]]s. For example, most camera path animations generated from discrete key-frames are handled using Catmull–Rom splines. They are popular mainly for being relatively easy to compute, guaranteeing that each key frame position will be hit exactly, and also guaranteeing that the tangents of the generated curve are continuous over multiple segments.
 
===Kochanek–Bartels spline===
{{main|Kochanek–Bartels spline}}
A Kochanek–Bartels spline is a further generalization on how to choose the tangents given the data points <math>\boldsymbol{p}_{k-1}</math>, <math>\boldsymbol{p}_k</math> and <math>\boldsymbol{p}_{k+1}</math>, with three parameters possible, tension, bias and a continuity parameter.
 
===Monotone cubic interpolation===
{{main|Monotone cubic interpolation}}
If a cubic Hermite spline of any of the above listed types is used for [[interpolation]] of a [[Monotonic function|monotonic]] data set, the interpolated function will not necessarily be monotonic, but monotonicity can be preserved by adjusting the tangents.
 
==Interpolation on the unit interval without exact derivatives==
Given ''p''<sub>−1</sub>, ''p''<sub>0</sub>, ''p''<sub>1</sub> and ''p''<sub>2</sub> as the values that the function should take on at −1, 0, 1 and 2, we can use centered differences instead of exact derivatives.<ref>[http://arxiv.org/abs/0905.3564 Two hierarchies of spline interpolations. Practical algorithms for multivariate higher order splines]</ref> Thus the Catmull–Rom spline is
 
:<math>\mathrm{CINT}_x(p_{-1}, p_0, p_1, p_2) = \frac 12 \begin{pmatrix} -x^3 +2x^2 - x \\ 3x^3 - 5x^2 + 2 \\ -3x^3 + 4x^2 + x \\ x^3 - x^2 \end{pmatrix}\cdot \begin{pmatrix} p_{-1}\\p_{0}\\p_1\\p_2 \end{pmatrix} = \frac 12 \begin{pmatrix} x ((2-x) x-1) \\ x^2 (3 x-5)+2 \\ x ((4-3 x) x+1) \\ (x-1) x^2 \end{pmatrix} \cdot \begin{pmatrix} p_{-1}\\p_{0}\\p_1\\p_2 \end{pmatrix}</math>
for <math>x \in [0,1]</math>, where the left-hand vector is independent of the ''p''.
 
This writing is relevant for [[tricubic interpolation]], where one optimization requires you to compute CINT<sub>''x''</sub> sixteen times with the same ''x'' and different ''p''.
 
==See also==
* [[Bicubic interpolation]], a generalization to two dimensions
* [[Tricubic interpolation]], a generalization to three dimensions
* [[Hermite interpolation]]
* [[Multivariate interpolation]]
* [[Spline interpolation]]
 
==References==
{{reflist}}
* Catmull, Edwin and Rom, Raphael, A class of local interpolating splines, in R. E. Barnhill and R. F. Riesenfeld (eds.) Computer Aided Geometric Design, Academic Press, New York, 1974, 317–326.
 
==External links==
* [http://www.cs.clemson.edu/~dhouse/courses/405/notes/splines.pdf Spline Curves], Prof. Donald H. House [[Clemson University]]
* [http://cvcweb.ices.utexas.edu/ccv/papers/1993/conference/multidim.pdf Multi-dimensional Hermite Interpolation and Approximation], Prof. Chandrajit Bajaj, [[Purdue University]]
* [http://www.mvps.org/directx/articles/catmull/ Introduction to Catmull–Rom Splines], MVPs.org
* [http://www.ibiblio.org/e-notes/Splines/Cardinal.htm Interpolating Cardinal and Catmull–Rom splines]
* [http://paulbourke.net/miscellaneous/interpolation/ Interpolation methods: linear, cosine, cubic and hermite (with C sources)]
* [http://www.blackpawn.com/texts/splines/ Common Spline Equations ]
 
{{DEFAULTSORT:Cubic Hermite Spline}}
[[Category:Splines]]
[[Category:Interpolation]]

Revision as of 22:25, 9 April 2013

In numerical analysis, a cubic Hermite spline or cubic Hermite interpolator is a spline where each piece is a third-degree polynomial specified in Hermite form (not to be confused with Hermite polynomial[1]): that is, by its values and first derivatives at the end points of the corresponding domain interval.

Cubic Hermite splines are typically used for interpolation of numeric data specified at given argument values x1,x2,,xn, to obtain a smooth continuous function. The data should consist of the desired function value and derivative at each xk. (If only the values are provided, the derivatives must be estimated from them.) The Hermite formula is applied to each interval (xk,xk+1) separately. The resulting spline will be continuous and will have continuous first derivative.

Cubic polynomial splines can be specified in other ways, the Bézier form being the most common. However, these two methods provide the same set of splines, and data can be easily converted between the Bézier and Hermite forms; so the names are often used as if they were synonymous.

Cubic polynomial splines are extensively used in computer graphics and geometric modeling to obtain curves or motion trajectories that pass through specified points of the plane or three-dimensional space. In these applications, each coordinate of the plane or space is separately interpolated by a cubic spline function of a separate parameter t.

Cubic splines can be extended to functions of two or more parameters, in several ways. Bicubic splines are often used to interpolate data on a regular rectangular grid, such as pixel values in a digital image or altitude data on a terrain. Bicubic surface patches, defined by three bicubic splines, are an essential tool in computer graphics.

Cubic splines are often called csplines, especially in computer graphics. Hermite splines are named after Charles Hermite.

Interpolation on a single interval

Unit interval (0, 1)

On the unit interval (0,1), given a starting point p0 at t=0 and an ending point p1 at t=1 with starting tangent m0 at t=0 and ending tangent m1 at t=1, the polynomial can be defined by

𝒑(t)=(2t33t2+1)𝒑0+(t32t2+t)𝒎0+(2t3+3t2)𝒑1+(t3t2)𝒎1
The four Hermite basis functions. The interpolant in each subinterval is a linear combination of these four functions.

where t ∈ [0, 1].

Interpolation on an arbitrary interval

Interpolating x in an arbitrary interval (xk,xk+1) is done by mapping the latter to [0,1] through an affine (degree 1) change of variable. The formula is

𝒑(x)=h00(t)𝒑k+h10(t)(xk+1xk)𝒎k+h01(t)𝒑k+1+h11(t)(xk+1xk)𝒎k+1.

with t=(xxk)/(xk+1xk) and h refers to the basis functions, defined below. Note that the tangent values have been scaled by xk+1xk compared to the equation on the unit interval.

Uniqueness

The formulae specified above provides the unique third-degree polynomial path between the two points with the given tangents.
Proof:
Let Q(x) be another third degree polynomial satisfying the given boundary conditions. Define R(x)=Q(x)P(x). Since both Q and P are third degree polynomials, R is at most a third degree polynomial. Furthermore:

R(0)=Q(0)P(0)=0 (We assume both P and Q satisfy the boundary conditions)
R(1)=0

So R must be of the form:

R(x)=ax(x1)(xr)
R(x)=ax(x1)+ax(xr)+a(x1)(xr)

We know furthermore that:

R(0)=Q(0)P(0)=0
R(0)=0=ar.......................(1)
R(1)=Q(1)P(1)=0
R(1)=0=a(1r)...............(2)

Putting (1) and (2) together, we deduce that a=0 and therefore R=0, thus P(x)=Q(x)

Representations

We can write the interpolation polynomial as

𝒑(t)=h00(t)𝒑0+h10(t)𝒎0+h01(t)𝒑1+h11(t)𝒎1

where h00,h10,h01,h11 are Hermite basis functions. These can be written in different ways, each way revealing different properties.

expanded factorized Bernstein
h00(t) 2t33t2+1 (1+2t)(1t)2 B0(t)+B1(t)
h10(t) t32t2+t t(1t)2 13B1(t)
h01(t) 2t3+3t2 t2(32t) B3(t)+B2(t)
h11(t) t3t2 t2(t1) 13B2(t)

The "expanded" column shows the representation used in the definition above. The "factorized" column shows immediately, that h10 and h11 are zero at the boundaries. You can further conclude that h01 and h11 have a zero of multiplicity 2 at 0 and h00 and h10 have such a zero at 1, thus they have slope 0 at those boundaries. The "Bernstein" column shows the decomposition of the Hermite basis functions into Bernstein polynomials of order 3:

Bk(t)=(3k)tk(1t)3k

Using this connection you can express cubic Hermite interpolation in terms of cubic Bézier curves with respect to the four values 𝒑0,𝒑0+𝒎03,𝒑1𝒎13,𝒑1 and do Hermite interpolation using the de Casteljau algorithm. It shows that in a cubic Bézier patch the two control points in the middle determine the tangents of the interpolation curve at the respective outer points.

Interpolating a data set

A data set, (tk,𝒑k) for k=1,,n, can be interpolated by applying the above procedure on each interval, where the tangents are chosen in a sensible manner, meaning that the tangents for intervals sharing endpoints are equal. The interpolated curve then consists of piecewise cubic Hermite splines, and is globally continuously differentiable in (t1,tn).

The choice of tangents is non-unique, and there are several options available.

Finite difference

Example with finite difference tangents

The simplest choice is the three-point difference, not requiring constant interval lengths,

𝒎k=𝒑k+1𝒑k2(tk+1tk)+𝒑k𝒑k12(tktk1)

for internal points k=2,,n1, and one-sided difference at the endpoints of the data set.

Cardinal spline

Cardinal spline example in 2D. The line represents the curve, and the squares represent the control points 𝒑k. Notice that the curve does not reach the first and last points, these points do however affect the shape of the curve. The tension parameter used is 0.1

A cardinal spline, sometimes called a canonical spline,[2] is obtained[3] if

𝒎k=(1c)𝒑k+1𝒑k1tk+1tk1

is used to calculate the tangents. The parameter c is a tension parameter that must be in the interval (0,1). In some sense, this can be interpreted as the "length" of the tangent. c=1 will yield all zero tangents, and c=0 yields a Catmull–Rom spline.

Catmull–Rom spline

Fitter (General ) Cameron Broadbent from Stevensville, spends time with hobbies including metal detection, property developers in singapore and psychology. Finds encouragement by making vacation to Tomb of Askia.

Have a look at my page; condo for Sale

For tangents chosen to be

𝒎k=𝒑k+1𝒑k1tk+1tk1

a Catmull–Rom spline is obtained, being a special case of a cardinal spline.

The curve is named after Edwin Catmull and Raphael Rom. The principal advantage of this technique is that the points along the original set of points also make up the control points for the spline curve.[4] Two additional points are required on either end of the curve. The default implementation of the Catmull–Rom algorithm is capable of producing loops and self intersections. The chordal and centripetal Catmull–Rom implementations [5] solve this problem, but use a slightly different calculation.[6] In computer graphics, Catmull–Rom splines are frequently used to get smooth interpolated motion between key frames. For example, most camera path animations generated from discrete key-frames are handled using Catmull–Rom splines. They are popular mainly for being relatively easy to compute, guaranteeing that each key frame position will be hit exactly, and also guaranteeing that the tangents of the generated curve are continuous over multiple segments.

Kochanek–Bartels spline

Mining Engineer (Excluding Oil ) Truman from Alma, loves to spend time knotting, largest property developers in singapore developers in singapore and stamp collecting. Recently had a family visit to Urnes Stave Church. A Kochanek–Bartels spline is a further generalization on how to choose the tangents given the data points 𝒑k1, 𝒑k and 𝒑k+1, with three parameters possible, tension, bias and a continuity parameter.

Monotone cubic interpolation

Mining Engineer (Excluding Oil ) Truman from Alma, loves to spend time knotting, largest property developers in singapore developers in singapore and stamp collecting. Recently had a family visit to Urnes Stave Church. If a cubic Hermite spline of any of the above listed types is used for interpolation of a monotonic data set, the interpolated function will not necessarily be monotonic, but monotonicity can be preserved by adjusting the tangents.

Interpolation on the unit interval without exact derivatives

Given p−1, p0, p1 and p2 as the values that the function should take on at −1, 0, 1 and 2, we can use centered differences instead of exact derivatives.[7] Thus the Catmull–Rom spline is

CINTx(p1,p0,p1,p2)=12(x3+2x2x3x35x2+23x3+4x2+xx3x2)(p1p0p1p2)=12(x((2x)x1)x2(3x5)+2x((43x)x+1)(x1)x2)(p1p0p1p2)

for x[0,1], where the left-hand vector is independent of the p.

This writing is relevant for tricubic interpolation, where one optimization requires you to compute CINTx sixteen times with the same x and different p.

See also

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

  • Catmull, Edwin and Rom, Raphael, A class of local interpolating splines, in R. E. Barnhill and R. F. Riesenfeld (eds.) Computer Aided Geometric Design, Academic Press, New York, 1974, 317–326.
  1. 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.

    My blog: http://www.primaboinca.com/view_profile.php?userid=5889534
  2. Charles Petzold. "Canonical Splines in WPF and Silverlight". 2009.
  3. Cardinal Splines at Microsoft Developer Network
  4. E. Catmull and R. Rom. A class of local interpolating splines. Computer Aided Geometric Design, pages 317{326, 1974.
  5. N. Dyn, M. S. Floater, and K. Hormann. Four-point curve subdivision based on iterated chordal and centripetal parameterizations. Computer Aided Geometric Design, 26(3):279{286, 2009
  6. P. J. Barry and R. N. Goldman. A recursive evaluation algorithm for a class of Catmull-Rom splines. SIGGRAPH Computer Graphics, 22(4):199{204, 1988.
  7. Two hierarchies of spline interpolations. Practical algorithms for multivariate higher order splines