Figures::ShaderGrating
使い方
ShaderGratingは正弦波の波長・振幅(コントラスト)、位相、方位の情報を持っています。それぞれのパラメタを予め指定しておき、draw()関数を実行するとそのつど描画します。基準の座標指定(centering, shiftなど)はFigureの基本操作に準じます。
// サンプル #include <psychlops.h> using namespace Psychlops; void psychlops_main() { Canvas cnvs(Canvas::fullscreen); // 初期設定 Figures::ShaderGrating grating; grating.phase = 0; grating.contrast = 1; grating.wavelength = 50; grating.orientation = 2*PI/10.0; grating.set(500,500).centering(); // 表示 while(!Keyboard::esc.pushed()) { cnvs.clear(Color::gray); grating.phase += 2*PI/60; grating.draw(); cnvs.flip(); } }
メソッド
パラメタ設定
- wavelength =
- 正弦波の波長をピクセル単位で指定します。
- contrast =
- 正弦波のコントラストを指定します。
- phase =
- 正弦波の位相を指定します。
- orientation =
- 正弦波の方位を指定します。
- set(width, height)
- 縞を表示する矩形領域の幅と高さを指定します
移動
- ShaderGrating& centering()
- Gratingを画面の中央に移動します。
- ShaderGrating& centering(double x, double y)
- Gratingの中心を(x,y)に移動します。
- ShaderGrating& centering(const Point &po)
- Gratingの中心をpoに移動します。
- ShaderGrating& centering(const Rectangle &rect)
- 長方形の中心をrectで指定したRectangleと同一にします。
- ShaderGrating& centering(const Image &img)
- Gratingの中心をimgで指定したImageの中央に移動します。
- ShaderGrating& shift(double h, double v)
- Gratingを現在の座標から(h,v)だけ移動します。
描画
座標取得
それぞれの関数名のとおりのGratingの描画範囲の情報を取得します。また、描画範囲は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]