GraphicLibrary
0.5.0
|
Catmull-Rom 曲線 [詳解]
公開メンバ関数 | |
template<class T > | |
CatmullRom_Spline (const Coord< T > &before, const Coord< T > &p0, const Coord< T > &p1, const Coord< T > &after, double d=1) | |
対象の 2 点の前後も含めた 4 点を指定して構築 [詳解] | |
![]() | |
template<class T , class D > | |
FergusonCoons_Spline (const Coord< T > &p0, const Coord< T > &p1, const Coord< D > &dp0, const Coord< D > &dp1) | |
曲線の両端の点とその導関数の値を指定して構築 [詳解] | |
virtual double | x (double t) |
x(t) の値を求める [詳解] | |
virtual double | y (double t) |
y(t) の値を求める [詳解] | |
![]() | |
virtual | ~ParametricEquation () |
仮想デストラクタ(何もしない) | |
Catmull-Rom 曲線
FergusonCoons/Spline 曲線において導関数を以下の式で固定したものを Catmull-Rom 曲線という。
x_i'(0) = d * ( x_i+1 - x_i-1 ) / 2
但し、d は補正係数とする。
|
inline |
対象の 2 点の前後も含めた 4 点を指定して構築
点 p の導関数の値は、前後の点 pa, pb と補正係数 d を使って以下の式で計算する
d( pb - pa ) / 2
before | p0 の前の点の座標 |
p0,p1 | 曲線の両端の点の座標 |
after | p1 の後の点の座標 |
d | 補正係数 |