クラス SGCanvasDraw

ドロー系の図形描画クラス [詳細]

#include <sgcanvas.h>

すべてのメンバ一覧

Public メソッド

 SGCanvasDraw (SGCore *core=NULL)
 コンストラクタ
 SGCanvasDraw (SGSurface *surface, SGCore *core=NULL)
 コンストラクタ
virtual ~SGCanvasDraw ()
 デストラクタ
void CvSetSurface (SGSurface *surface)
 描画を行うサーフェースを登録する
SGSurfaceCvGetSurface ()
 登録したサーフェスを取得する
int CvBegin ()
 描画準備を行う
int CvReady ()
 描画準備が出来ているか確認する
int CvUpdate ()
 描画を更新する
int CvEnd (int update=TRUE)
 描画を終了する
void CvCopyPage ()
 コピーページ
void CvSetAntialias (int enable)
 アンチエイリアス機能のON/OFFを行う
void CvColor (int red, int green, int blue)
 カレントペンの色を指定する
void CvColor ()
 カレントペンの色を透明色に指定する
void CvSetLineWidth (int width)
 線の太さを設定する
void CvSetDash (int *dashes=NULL, int num=0, int offset=0)
 線種(実線・破線)の指定
void CvSetFillRule (int rule)
 塗りつぶし規則を指定する
void CvSetLineCap (int cap)
 線の端属性を指定する
void CvSetLineJoin (int join)
 線の接続属性の指定する
void CvSetMiterLimit (int limit)
 線の接続属性「MITER」の限界角度を設定する
int CvSetOperator (int op)
 描画属性を設定する
double CvSetTolerance (double tolerance)
 精度を設定する
void CvNewPath ()
 新しいパスを準備する
void CvNewSubPath ()
 新しいサブパスを準備する
void CvClosePath ()
 パスを閉じる
void CvMoveTo (int x, int y)
 カレントポイントを移動する
void CvMoveToRel (int dx, int dy)
 カレントポイントを相対座標指定で移動する
void CvLineTo (int x, int y)
 カレントパスに直線を追加する
void CvLineToRel (int dx, int dy)
 カレントパスに直線を相対座標指定で追加する
void CvCurveTo (int c1x, int c1y, int c2x, int c2y, int x, int y)
 カレントパスに曲線を追加する
void CvCurveToRel (int c1dx, int c1dy, int cl2dx, int c2dy, int dx, int dy)
 カレントパスに曲線を相対座標指定で追加する
void CvTextPath (const char *text, int size)
 カレントパスに文字列パスを追加する
void CvRectangle (int x, int y, int w, int h)
 カレントパスに矩形を追加する
void CvCircle (int cx, int cy, int radius)
 カレントパスに円形を追加する
void CvCircleNegative (int cx, int cy, int radius)
 カレントパスに円形(反時計周り)を追加する
void CvArc (int cx, int cy, int radius, int deg1, int deg2)
 時計回り円弧を追加
void CvArcNegative (int cx, int cy, int radius, int deg1, int deg2)
 反時計回り円弧を追加
void CvPreservePath ()
 パスデータの維持を指示する
void CvStroke ()
 輪郭線を描く
void CvFill ()
 塗りつぶす
void CvClip ()
 クリッピングする
void CvResetClip ()
 クリッピングを解除する
void CvSave ()
 状態(変換マトリックス)を保存する
void CvRestore ()
 状態(変換マトリックス)を復元する
void CvTransformTranslate (int tx, int ty)
 変換マトリックスに平行移動を追加
void CvTransformScale (double sx, double sy)
 変換マトリックスに拡大縮小を追加
void CvTransformRotate (int angle)
 変換マトリックス設定に回転を追加
void CvTransformSlant (int degx, int degy)
 変換マトリックス設定に傾斜を追加
void CvTransformMatrix (double xx, double yx, double xy, double yy, double x0, double y0)
 変換マトリックス
void CvTransformGetMatrix (double &xx, double &yx, double &xy, double &yy, double &x0, double &y0)
 変換マトリックスの取得
void CvTransformGetMatrixInvert (double &xx, double &yx, double &xy, double &yy, double &x0, double &y0)
 逆変換マトリックスの取得
void CvTransformReset ()
 変換マトリックスのリセット
void CvTransformDo (SGRect &rect)
 矩形の座標を現在の変換マトリックスで変換する
void CvTransformDo (int &x, int &y)
 座標を現在の変換マトリックスで変換する
void CvSelectFont (const char *face, int slant, int bold)
 書体を選択する
void CvShowText (const char *text, int size)
 文字列を描画する
void CvGetTextExtents (const char *text, int size, int &ascender, int &width, int &height)
 文字列を描画するのに必要なサイズを取得する
void CvGetCurrent (int &x, int &y)
 カレントポイントを取得する

説明

ドロー系の図形描画クラス

指定のキャンバス(SGSurface)へ図を描くことができます。 PlusGオリジナルなグラフィック描画クラスです。 このクラスの他に、カイロ(libcairo)というグラフィック描画ライブラリを使用する SGCairoDrawというクラスもあります。

┌──────┬────┬────┬────┐
│            │  精度  │  機能  │  速度  │
├──────┼────┼────┼────┤
│SGCanvasDraw│  整数  │  低い  │  早い  │
│SGCairoDraw │ 倍精度 │  高い  │  遅い  │
└──────┴────┴────┴────┘
例:

example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.


コンストラクタとデストラクタ

SGCanvasDraw ( SGCore core = NULL  ) 

コンストラクタ

SGCanvasDraw ( SGSurface surface,
SGCore core = NULL 
)

コンストラクタ

引数:
surface サーフェース
~SGCanvasDraw (  )  [virtual]

デストラクタ


関数

void CvSetSurface ( SGSurface surface  ) 

描画を行うサーフェースを登録する

描画を行うサーフェースを登録します。

SGSurface * CvGetSurface (  ) 

登録したサーフェスを取得する

登録したサーフェスを取得します。

戻り値:
サーフェス
int CvBegin (  ) 

描画準備を行う

描画準備を行う為にコールしますが、この関数は何もしません。
SGCairoDrawクラスとの互換性を保つ為に残されています。
グラフィックを使用する為に1度だけコールしてください。
いつでも基本クラスを変更できるようにする為、SGCanvasDraw と SGCairoDraw は全ての 関数名が同じになっています。
コールしなくても動作しますが、この関数を使用しないと基本クラスを SGCairoDraw に切り替える ことが出来なくなってしまいますので、使用するようにして下さい。

戻り値:
TRUE 成功
FALSE 失敗
例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
int CvReady (  ) 

描画準備が出来ているか確認する

描画準備が出来ているか確認します。

戻り値:
TRUE 準備が出来ている状態です
FALSE 準備ができていない状態です
int CvUpdate (  ) 

描画を更新する

描画を更新します。

戻り値:
TRUE 正常
FALSE 異常
int CvEnd ( int  update = TRUE  ) 
void CvCopyPage (  ) 

コピーページ

この関数は何もしません。
SGCairoDrawクラスとの互換性を保つ為に残されています。

void CvSetAntialias ( int  enable  ) 

アンチエイリアス機能のON/OFFを行う

アンチエイリアス機能のON/OFFを行います。
※現在この関数は未対応です。機能しません。

引数:
enable ON/OFF

TRUE  アンチエイリアスする
FALSE アンチエイリアスしない
void CvColor ( int  red,
int  green,
int  blue 
)

カレントペンの色を指定する

カレントペンの色を指定します。

引数:
red 赤要素(0-255)
green 緑要素(0-255)
blue 青要素(0-255)
例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
void CvColor (  ) 

カレントペンの色を透明色に指定する

カレントペンの色を透明に指定します。

void CvSetLineWidth ( int  width  ) 
void CvSetDash ( int *  dashes = NULL,
int  num = 0,
int  offset = 0 
)

線種(実線・破線)の指定

破線(実線)の設定を行います。
パラメータを全て省略すると実線を指定します。

引数:
dashes 破線データの配列
num 配列の数
offset 開始のオフセット
例:
example_canvas_dash.cpp.
void CvSetFillRule ( int  rule  ) 

塗りつぶし規則を指定する

塗りつぶしの規定を指定します。
クローズサブパスが複数存在するパスの内側/外側を判定する法則を指定します。 ※現在この関数は未対応です。CV_FILL_RULE_EVEN_ODD固定になっています。

引数:
rule 塗りつぶしの法則

CV_FILL_RULE_WINDING  パスの方向、右回り/左回りで判断する(規定)
CV_FILL_RULE_EVEN_ODD 偶数/奇数で判断する
例:
example_canvas_fillstyle.cpp.
void CvSetLineCap ( int  cap  ) 

線の端属性を指定する

線の端属性を設定します。
※現在この関数は未対応です。機能しません。

引数:
cap 端属性

CV_LINE_CAP_BUTT   端なし。ぶつ切り。(規定)
CV_LINE_CAP_ROUND  線の太さが直径の半円の端。
CV_LINE_CAP_SQUARE 線の太さの正方形の半分の端。
例:
example_canvas_cap.cpp.
void CvSetLineJoin ( int  join  ) 

線の接続属性の指定する

線の接続属性を設定します。
※現在この関数は未対応です。機能しません。

引数:
join 接続属性

CV_LINE_JOIN_MITER 真っすに線を延ばして交差させる(規定)
CV_LINE_JOIN_ROUND 線の太さが直径の円弧でつなぐ
CV_LINE_JOIN_BEVEL 端の外角を直線でつなぐ
例:
example_canvas_join.cpp.
void CvSetMiterLimit ( int  limit  ) 

線の接続属性「MITER」の限界角度を設定する

線の接続属性に「MITER」を選択した場合の限界角度を設定します。
接続線の角度が、ここで指定した角度より小さい角度(より鋭角)の場合、 接続属性を「BEVEL」に置き換えて線を描きます。
例えば、30を指定した場合、30度の接続線は「MITER」で描画しますが、 29度の接続線は「BEVEL」で描画します。
初期値は約11.4度が設定されています。
※現在この関数は未対応です。機能しません。

引数:
limit 角度deg
int CvSetOperator ( int  op  ) 

描画属性を設定する

※現在この関数は未対応です。機能しません。

引数:
op 属性
double CvSetTolerance ( double  tolerance  ) 

精度を設定する

※現在この関数は未対応です。機能しません。

引数:
tolerance 精度
void CvNewPath (  ) 

新しいパスを準備する

新しいパスを準備します。
この関数のコール後、カレントポイント、カレントパスは無くなります。

例:
example_canvas_clip.cpp.
void CvNewSubPath (  ) 

新しいサブパスを準備する

新しいサブパスを準備します
この関数のコール後、カレントポイントは無くなります。
CvMoveTo() を使用した時も同じ効果が得られます。したがって、ほとんどの場合において この関数を使用する必要はありません。
この関数を使用すると便利な場面は、パスの先頭が円弧の時です。
円弧で始まるサブパスの描画準備を CvMoveTo() で行おうとすると円弧の描画開始位置を わざわざ計算し、その場所へ移動しなければならなくなります。
そのような場合に CvNewSubPath() を使うと簡単に開始できます。

例:
example_canvas_fillstyle.cpp.
void CvClosePath (  ) 

パスを閉じる

カレントのサブパスの終点から始点に向かって線を追加しパスを閉じます。 既に閉じている(終点と始点が同じ座標)場合は何もしましせん。 カレントのサブパスが保持する点の数が2点以下の場合も、パスを閉じることは できません。

例:
example_canvas_curverect.cpp, example_canvas_fillstroke.cpp, と example_canvas_hello.cpp.
void CvMoveTo ( int  x,
int  y 
)

カレントポイントを移動する

新しいサブパスを準備します。
この関数を実行するとカレントポイントをx,yに移動します。

引数:
x カレントポイントX
y カレントポイントY
例:
example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
void CvMoveToRel ( int  dx,
int  dy 
)

カレントポイントを相対座標指定で移動する

この関数は相対座標指定タイプの CvMoveTo() です。 新しいサブパスを準備します。
この関数を実行するとカレントポイントをdx,dy分移動します。
カレントポイントが無い状態でこの関数を実行するとエラー終了となります。 この関数を正常終了するとカレントポイントは(cpx+dx,cpy+dy)座標になります。 cp=カレントポイント
CvMoveTo( cpx+dx , cpy+dy );
と等価です。

引数:
dx カレントポイント移動量X
dy カレントポイント移動量Y
void CvLineTo ( int  x,
int  y 
)

カレントパスに直線を追加する

カレントパスに直線を追加します。
直線はカレントポイントからx,y座標に引かれます。
カレントポイントがない状態でこの関数を実行すると CvMoveTo() と同じになります。 この関数を終了するとカレントポイントは(x,y)座標になります。

引数:
x 直線の終点座標X
y 直線の終点座標Y
例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, と example_canvas_fillstroke.cpp.
void CvLineToRel ( int  dx,
int  dy 
)

カレントパスに直線を相対座標指定で追加する

この関数は相対座標指定タイプの CvLineTo() です。 カレントパスに直線を追加します。
直線はカレントポイントからdx,dy分移動した座標に引かれます。
cp=カレントポイント
CvLineTo( cpx+dx , cpy+dy );
と等価です。
カレントポイントが無い場合、この関数は実行を無視します。 この関数を正常終了するとカレントポイントは(cpx+dx,cpy+dy)座標になります。

引数:
dx 直線の終点座標X(移動量、カレントポイントからの相対で指定)
dy 直線の終点座標Y(移動量、カレントポイントからの相対で指定)
例:
example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
void CvCurveTo ( int  c1x,
int  c1y,
int  c2x,
int  c2y,
int  x,
int  y 
)

カレントパスに曲線を追加する

カレントパスに曲線を追加します。
カレントポイントから(x,y)座標に、2つのコントロールポイント(c1x,c1y)(c2x,c2y)を使用した曲線を引きます。
この関数を終了するとカレントポイントは(x,y)座標になります。 カレントポイントがない状態でこの関数を実行すると CvMoveTo(x,y) と同じになります。

引数:
c1x コントロールポイント1X
c1y コントロールポイント1Y
c2x コントロールポイント2X
c2y コントロールポイント2Y
x 曲線の終点座標X
y 曲線の終点座標Y
例:
example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, と example_canvas_fillstroke.cpp.
void CvCurveToRel ( int  c1dx,
int  c1dy,
int  c2dx,
int  c2dy,
int  dx,
int  dy 
)

カレントパスに曲線を相対座標指定で追加する

この関数は相対座標指定タイプの CvCurveTo() です。 cp=カレントポイント
CvCurveTo( cpx+c1x,cpy+c1y , cpx+c2x,cpy+c2y , cpx+dx,cpy+dy );
と等価です。
カレントパスに曲線を追加します。
カレントポイントから(cpx+dx,cpy+dy)座標に、2つのコントロールポイント (cpx+c1x,cpy+c1y)(cpx+c2x,cpy+c2y)を使用した曲線を引きます。
カレントポイントが無い状態でこの関数を実行するとエラー終了となります。 この関数を正常終了するとカレントポイントは(cpx+dx,cpy+dy)座標になります。

引数:
c1dx コントロールポイント1X(移動量、カレントポイントからの相対で指定)
c1dy コントロールポイント1Y(移動量、カレントポイントからの相対で指定)
c2dx コントロールポイント2X(移動量、カレントポイントからの相対で指定)
c2dy コントロールポイント2Y(移動量、カレントポイントからの相対で指定)
dx 曲線の終点座標X(移動量、カレントポイントからの相対で指定)
dy 曲線の終点座標Y(移動量、カレントポイントからの相対で指定)
void CvTextPath ( const char *  text,
int  size 
)

カレントパスに文字列パスを追加する

カレントパスに文字列パスを追加します。

引数:
text 文字列
size 文字サイズ
参照:
void SGCanvasDraw::CvSelectFont(const char* filename,int slant,int bold)
例:
example_canvas_hello.cpp.
void CvRectangle ( int  x,
int  y,
int  w,
int  h 
)

カレントパスに矩形を追加する

カレントパスに矩形クローズドパスを追加します。
この関数はカレントポイント位置に矩形を追加します。

引数:
x 矩形左下座標X
y 矩形左下座標Y
w 矩形の幅
h 矩形の高さ
例:
example_canvas_clip.cpp, と example_canvas_fillstyle.cpp.
void CvCircle ( int  cx,
int  cy,
int  radius 
)

カレントパスに円形を追加する

カレントパスに円形クローズドパスを追加します。
この関数はカレントポイント位置に円形を追加します。

引数:
cx 円の中心のX座標
cy 円の中心のY座標
radius 円の半径
void CvCircleNegative ( int  cx,
int  cy,
int  radius 
)

カレントパスに円形(反時計周り)を追加する

カレントパスに円形クローズドパスを追加します。
この関数はカレントポイント位置に円形(反時計周り)を追加します。

引数:
cx 円の中心のX座標
cy 円の中心のY座標
radius 円の半径
void CvArc ( int  cx,
int  cy,
int  radius,
int  deg1,
int  deg2 
)

時計回り円弧を追加

カレントパスに円弧を追加します
弧は(cx,cy)を中心に、半径radius、開始角deg1から終了角deg2まで時計回りで描画されます。
カレントパスが存在する場合、描画された円弧はカレントパスに追加されます。
つまりカレントポイントが存在する場合、そのカレントポイントから円弧の開始位置へ
直線が描画されます。
追加したくない場合はCvNewSubPath()を呼ぶことで回避できます。
描画終了後、カレントポイントは円弧の終了位置に移動します。
角度は3時の位置が0度です。

引数:
cx 円弧の中心座標X
cy 円弧の中心座標Y
radius 半径
deg1 開始角度
deg2 終了角度
例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_clip.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, と example_canvas_vuggy.cpp.
void CvArcNegative ( int  cx,
int  cy,
int  radius,
int  deg1,
int  deg2 
)

反時計回り円弧を追加

カレントパスに円弧を追加します。
弧は(cx,cy)を中心に、半径radius、開始角deg1から終了角deg2まで反時計回りで描画されます。 カレントパスが存在する場合、描画された円弧はカレントパスに追加されます。
つまりカレントポイントが存在する場合、そのカレントポイントから円弧の開始位置へ
直線が描画されます。
追加したくない場合はCvNewSubPath()を呼ぶことで回避できます。 描画終了後、カレントポイントは円弧の終了位置に移動します。
角度は3時の位置が0度です。

引数:
cx 円弧の中心座標X
cy 円弧の中心座標Y
radius 半径
deg1 開始角度
deg2 終了角度
例:
example_canvas_arcnegative.cpp, と example_canvas_fillstyle.cpp.
void CvPreservePath (  ) 

パスデータの維持を指示する

輪郭 CvStroke()、塗りつぶし CvFill()、クリップ CvClip() を実行後も パスのデータを維持するように指示します。
通常、CvStroke() CvFill() CvClip() は実行後カレントのパスは消えてしまいます。
CvStroke() CvFill() CvClip() をコールする前に、この CvPreservePath() をコールしておくと カレントのパスデータが維持されます。

例:
example_canvas_curverect.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, と example_canvas_hello.cpp.
void CvStroke (  ) 

輪郭線を描く

カレントのパスをカレントの色、線種、太さで輪郭線を描きます。
コマンド実行後カレントのパスデータは消えてしまいます。
パスデータを維持させたい場合は CvPreservePath() を実行前にコールします。

例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
void CvFill (  ) 

塗りつぶす

カレントのパスをカレントの色で塗りつぶします。
コマンド実行後カレントのパスデータは消えてしまいます。
パスデータを維持させたい場合は CvPreservePath() を実行前にコールします。

例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, と example_canvas_vuggy.cpp.
void CvClip (  ) 

クリッピングする

カレントのパス領域をクリッピング領域に指定します。
※現在この関数は未対応です。機能しません。

例:
example_canvas_clip.cpp.
void CvResetClip (  ) 

クリッピングを解除する

クリッピングを解除します。 ※現在この関数は未対応です。機能しません。

void CvSave (  ) 

状態(変換マトリックス)を保存する

現在の状態(変換マトリックス)を保存します。

void CvRestore (  ) 

状態(変換マトリックス)を復元する

状態(変換マトリックス)を CvSave() で保存した時点に戻します。

void CvTransformTranslate ( int  tx,
int  ty 
)

変換マトリックスに平行移動を追加

変換マトリックスに平行移動効果を追加します。
(原点が指定した座標に移動します。)
以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。

引数:
tx X方向移動量
ty Y方向移動量
例:
example_canvas_fillstyle.cpp.
void CvTransformScale ( double  sx,
double  sy 
)

変換マトリックスに拡大縮小を追加

変形パラメータに拡大縮小効果を追加します。
以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。

引数:
sx X方向拡大縮小係数
sy Y方向拡大縮小係数
void CvTransformRotate ( int  deg  ) 

変換マトリックス設定に回転を追加

変形パラメータに回転効果を追加します。
原点を中心に時計回りに回転します。 以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。

引数:
deg 回転角度
void CvTransformSlant ( int  degx,
int  degy 
)

変換マトリックス設定に傾斜を追加

変形パラメータに傾斜効果を追加します。
以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。

引数:
degx X方向傾斜角
degy Y方向傾斜角
void CvTransformMatrix ( double  xx,
double  yx,
double  xy,
double  yy,
double  x0,
double  y0 
)

変換マトリックス

変換マトリックスを使用して変形パラメータを設定します。
以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。

引数:
xx アフィン変換係数
yx アフィン変換係数
xy アフィン変換係数
yy アフィン変換係数
x0 アフィン変換係数
y0 アフィン変換係数
アフィン変換(3×3のマトリックス)
    xx ,    xy ,    x0
    yx ,    yy ,    y0
     0 ,     0 ,     1

移動
     1 ,     0 , X移動量
     0 ,     1 , Y移動量
     0 ,     0 ,     1

拡大縮小
 倍率X,     0 ,     0
     0 , 倍率Y,     0
     0 ,     0 ,     1

回転 d=角度
 cos(d),-sin(d),     0
 sin(d), cos(d),     0
     0 ,     0 ,     1
void CvTransformGetMatrix ( double &  xx,
double &  yx,
double &  xy,
double &  yy,
double &  x0,
double &  y0 
)

変換マトリックスの取得

現在の変換マトリックスを取得します。

引数:
xx アフィン変換係数
yx アフィン変換係数
xy アフィン変換係数
yy アフィン変換係数
x0 アフィン変換係数
y0 アフィン変換係数
アフィン変換(3×3のマトリックス)
    xx ,    xy ,    x0
    yx ,    yy ,    y0
     0 ,     0 ,     1
void CvTransformGetMatrixInvert ( double &  xx,
double &  yx,
double &  xy,
double &  yy,
double &  x0,
double &  y0 
)

逆変換マトリックスの取得

現在の逆変換マトリックスを取得します。

引数:
xx アフィン変換係数
yx アフィン変換係数
xy アフィン変換係数
yy アフィン変換係数
x0 アフィン変換係数
y0 アフィン変換係数
アフィン変換(3×3のマトリックス)
    xx ,    xy ,    x0
    yx ,    yy ,    y0
     0 ,     0 ,     1
void CvTransformReset (  ) 

変換マトリックスのリセット

変換マトリックスをリセットします。

void CvTransformDo ( SGRect rect  ) 

矩形の座標を現在の変換マトリックスで変換する

パラメータrectで与えられた矩形の4点座標を現在の変換マトリックスで変換します。

void CvTransformDo ( int &  x,
int &  y 
)

座標を現在の変換マトリックスで変換する

パラメータ(x,y)で与えられた座標を現在の変換マトリックスで変換します。

void CvSelectFont ( const char *  filename,
int  slant,
int  bold 
)

書体を選択する

書体を選択します。
CvShowText() CvTextPath() はここで選択した書体を使用します。

引数:
filename 書体をファイル名で指定します
slant 斜体 FALSE:通常 TRUE:斜体
bold 太字 FALSE:通常 TRUE:太字
参照:
void SGCanvasDraw::CvShowText(const char* text,int size)
void SGCanvasDraw::CvTextPath(const char* text,int size)
例:
example_canvas_hello.cpp, と example_canvas_vuggy.cpp.
void CvShowText ( const char *  text,
int  size 
)

文字列を描画する

カレントポイント位置に CvSelectFont() で指定した書体で文字列を表示します。 現在の変換計数を考慮します(変換計数の影響を受けます)

引数:
text 描画する文字列
size 文字のサイズ(文字高をドットで指定)
参照:
void SGCanvasDraw::CvSelectFont(const char* filename,int slant,int bold)
例:
example_canvas_hello.cpp, と example_canvas_vuggy.cpp.
void CvGetTextExtents ( const char *  text,
int  size,
int &  ascender,
int &  width,
int &  height 
)

文字列を描画するのに必要なサイズを取得する

文字列を描画するのに必要なサイズを取得します。
CvSelectFont() で指定された書体を使用します。 現在の変換計数を考慮します(変換計数の影響を受けます)

引数:
text 文字列
size 文字のサイズ
ascender ベースラインから上のサイズ(高さ)
width 文字列全体の幅
height 文字列全体の高さ
参照:
void SGCanvasDraw::CvSelectFont(const char* filename,int slant,int bold)
例:
example_canvas_vuggy.cpp.
void CvGetCurrent ( int &  x,
int &  y 
)

カレントポイントを取得する

カレントポイント(現在のペンの位置)を取得します。

引数:
x カレントポイントX座標
y カレントポイントY座標

このクラスの説明は次のファイルから生成されました:

PlusG リファレンスマニュアル Ver 2.0.0