GraphicLibrary  0.5.0
tadah_fussy::gl::transformation::GInterpolation_Polynomial クラス

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

tadah_fussy::gl::transformation::GInterpolation_Polynomial の継承関係図
tadah_fussy::gl::transformation::GInterpolation_IF

公開型

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

公開メンバ関数

 GInterpolation_Polynomial (unsigned int n, PolynomialFunc pf)
 利用する多項式を指定して構築 [詳解]
 
virtual bool operator() (const canvas::DrawingArea_IF &draw, Coord< double > p, RGB *rgb) const
 多項式によるサンプル補間処理 [詳解]
 
- 基底クラス tadah_fussy::gl::transformation::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(unsigned int n, PolynomialFunc pf)
利用する多項式を指定して構築
Definition: gl_g_interpolation.h:352
void ResizePut(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, Coord< int > e, bool reverseX, bool reverseY, bool swapXY, const transformation::GInterpolation_IF &ipF)
パターンの拡大・縮小描画
RGB LagrangePolynomial(const std::vector< RGB > &col, double t)
Lagrange 多項式で補間した色を求める

構築子と解体子

◆ GInterpolation_Polynomial()

tadah_fussy::gl::transformation::GInterpolation_Polynomial::GInterpolation_Polynomial ( unsigned int  n,
PolynomialFunc  pf 
)
inline

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

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

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

関数詳解

◆ operator()()

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

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

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

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

tadah_fussy::gl::transformation::GInterpolation_IFを実装しています。


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