Figures::ShaderGaussianDot
使い方
ShaderGaussianDotはガウシアンの幅(正規分布のσに相当)を指定し、draw()すれば描画されるクラスです。基準の座標指定(centering, shiftなど)はFigureの基本操作に準じます。
// サンプル #include <psychlops.h> using namespace Psychlops; void psychlops_main() { Canvas cnvs(Canvas::fullscreen); // 初期設定 Figures::ShaderGaussianDot dot; dot.setSigma(10).centering(); dot.fill = Color::white; // 表示 while(!Keyboard::esc.pushed()) { cnvs.clear(Color::gray); dot.shift(0.3,0).draw(); cnvs.flip(); } }
メソッド
パラメタ設定
- fill=
- 最大値の色を指定します。最大値にガウス関数をかけたドットが描画されます。
- setSigma(double sigma)
- エンベロープの大きさを指定します。ガウス関数 a*exp( -(x-b)^2 / 2c^2) のc、正規分布で言うσに相当する値をピクセル単位で指定します。描画範囲は8σ四方(片側4σ)になります。
移動
- ShaderGaussianDot& centering()
- Gabor Patchを画面の中央に移動します。
- ShaderGaussianDot& centering(double x, double y)
- Gabor Patchの中心を(x,y)に移動します。
- ShaderGaussianDot& centering(const Point &po)
- Gabor Patchの中心をpoに移動します。
- ShaderGaussianDot& centering(const Rectangle &rect)
- 長方形の中心をrectで指定したRectangleと同一にします。
- ShaderGaussianDot& centering(const Image &img)
- Gabor Patchの中心をimgで指定したImageの中央に移動します。
- ShaderGaussianDot& shift(double h, double v)
- Gabor Patchを現在の座標から(h,v)だけ移動します。
描画
- ShaderGaussianDot& draw(Drawable &target)
- Gabor Patchを描画します。
座標取得
それぞれの関数名のとおりのGaussian Patchの描画範囲の情報を取得します。また、描画範囲は8σ四方の正方形で、getWidthなら描画範囲の幅を返します。
- double getWidth() const
- double getHeight() const
- Point getCenter() const
- double getHcenter() const
- double getVcenter() const
- double getTop() const
- double getLeft() const
- double getBottom() const
- double getRight() const
キーワード:[Figure] [Shader] [Extension]
参照:[リファレンスマニュアル] [Figures] [Change in Psychlops 1.5.0]