GraphicLibrary  0.5.0
GInterpolation_Polynomial クラス

多項式による補間法 [詳解]

GInterpolation_Polynomial の継承関係図
GInterpolation_IF

公開型

typedef RGB(* PolynomialFunc) (const std::vector< RGB > &col, double t)
 多項式関数の型
 

公開メンバ関数

 GInterpolation_Polynomial (unsigned int n, PolynomialFunc pf)
 利用する多項式を指定して構築 [詳解]
 
virtual bool operator() (const DrawingArea_IF &draw, Coord< double > p, RGB *rgb) const
 多項式によるサンプル補間処理 [詳解]
 
- 基底クラス GInterpolation_IF に属する継承公開メンバ関数
virtual ~GInterpolation_IF ()
 仮想デストラクタ (何もしない)
 

詳解

多項式による補間法

指定した範囲のピクセルの色コードを通る多項式を求めて補間処理を行う。

GInterpolation::LagrangePolynomialGInterpolation::NewtonPolynomial の利用を想定している。 次のコードで、Lagrange 多項式を利用した補間をしながら、パターン pattern を描画領域 draw に c0 - c1 の大きさで拡大・縮小貼り付けすることができる。

GPatternOp::ResizePut( pattern, draw, c0, c1, false, false, false, inter );

構築子と解体子

◆ GInterpolation_Polynomial()

GInterpolation_Polynomial::GInterpolation_Polynomial ( unsigned int  n,
PolynomialFunc  pf 
)
inline

利用する多項式を指定して構築

変数の範囲 n は 2 以上でなければならない。2 より小さい場合は assert を実行する。

引数
n多項式関数の係数を求めるための変数の範囲
pf利用する補間関数

関数詳解

◆ operator()()

virtual bool GInterpolation_Polynomial::operator() ( const DrawingArea_IF draw,
Coord< double >  p,
RGB rgb 
) const
virtual

多項式によるサンプル補間処理

描画領域 draw、補間関数 pf、補間結果へのポインタ rgb が未定義の場合は assert を実行する

引数
draw描画領域
p補間対象のピクセル座標
rgb求めた色コードを返す変数へのポインタ
戻り値
draw のメンバ関数 DrawingArea_IF::point の返り値をそのまま返す ( 通常、RGB 成分が取得できたら true を返す )

GInterpolation_IFを実装しています。


このクラス詳解は次のファイルから抽出されました: