ドロー系の図形描画クラス [詳細]
#include <sgcanvas.h>
Public メソッド | |
| SGCanvasDraw (SGCore *core=NULL) | |
| コンストラクタ | |
| SGCanvasDraw (SGSurface *surface, SGCore *core=NULL) | |
| コンストラクタ | |
| virtual | ~SGCanvasDraw () |
| デストラクタ | |
| void | CvSetSurface (SGSurface *surface) |
| 描画を行うサーフェースを登録する | |
| SGSurface * | CvGetSurface () |
| 登録したサーフェスを取得する | |
| 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 | 失敗 |
| int CvReady | ( | ) |
描画準備が出来ているか確認する
描画準備が出来ているか確認します。
| TRUE | 準備が出来ている状態です | |
| FALSE | 準備ができていない状態です |
| int CvUpdate | ( | ) |
描画を更新する
描画を更新します。
| TRUE | 正常 | |
| FALSE | 異常 |
| int CvEnd | ( | int | update = TRUE |
) |
描画を終了する
描画を終了する為に1度だけコールします。
| TRUE | 正常 | |
| FALSE | 異常 |
| void CvCopyPage | ( | ) |
コピーページ
この関数は何もしません。
SGCairoDrawクラスとの互換性を保つ為に残されています。
| void CvSetAntialias | ( | int | enable | ) |
アンチエイリアス機能のON/OFFを行う
アンチエイリアス機能のON/OFFを行います。
※現在この関数は未対応です。機能しません。
| enable | ON/OFFTRUE アンチエイリアスする FALSE アンチエイリアスしない |
| void CvColor | ( | int | red, | |
| int | green, | |||
| int | blue | |||
| ) |
カレントペンの色を指定する
カレントペンの色を指定します。
| red | 赤要素(0-255) | |
| green | 緑要素(0-255) | |
| blue | 青要素(0-255) |
| void CvColor | ( | ) |
カレントペンの色を透明色に指定する
カレントペンの色を透明に指定します。
| void CvSetLineWidth | ( | int | width | ) |
線の太さを設定する
線の太さを設定します。 ※現在この関数は未対応です。機能しません。
| width | 太さ |
| void CvSetDash | ( | int * | dashes = NULL, |
|
| int | num = 0, |
|||
| int | offset = 0 | |||
| ) |
線種(実線・破線)の指定
破線(実線)の設定を行います。
パラメータを全て省略すると実線を指定します。
| dashes | 破線データの配列 | |
| num | 配列の数 | |
| offset | 開始のオフセット |
| void CvSetFillRule | ( | int | rule | ) |
塗りつぶし規則を指定する
塗りつぶしの規定を指定します。
クローズサブパスが複数存在するパスの内側/外側を判定する法則を指定します。 ※現在この関数は未対応です。CV_FILL_RULE_EVEN_ODD固定になっています。
| rule | 塗りつぶしの法則CV_FILL_RULE_WINDING パスの方向、右回り/左回りで判断する(規定) CV_FILL_RULE_EVEN_ODD 偶数/奇数で判断する |
| void CvSetLineCap | ( | int | cap | ) |
線の端属性を指定する
線の端属性を設定します。
※現在この関数は未対応です。機能しません。
| cap | 端属性CV_LINE_CAP_BUTT 端なし。ぶつ切り。(規定) CV_LINE_CAP_ROUND 線の太さが直径の半円の端。 CV_LINE_CAP_SQUARE 線の太さの正方形の半分の端。 |
| void CvSetLineJoin | ( | int | join | ) |
線の接続属性の指定する
線の接続属性を設定します。
※現在この関数は未対応です。機能しません。
| join | 接続属性CV_LINE_JOIN_MITER 真っすに線を延ばして交差させる(規定) CV_LINE_JOIN_ROUND 線の太さが直径の円弧でつなぐ CV_LINE_JOIN_BEVEL 端の外角を直線でつなぐ |
| 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 | ( | ) |
| void CvNewSubPath | ( | ) |
新しいサブパスを準備する
新しいサブパスを準備します
この関数のコール後、カレントポイントは無くなります。
CvMoveTo() を使用した時も同じ効果が得られます。したがって、ほとんどの場合において この関数を使用する必要はありません。
この関数を使用すると便利な場面は、パスの先頭が円弧の時です。
円弧で始まるサブパスの描画準備を CvMoveTo() で行おうとすると円弧の描画開始位置を わざわざ計算し、その場所へ移動しなければならなくなります。
そのような場合に CvNewSubPath() を使うと簡単に開始できます。
| void CvClosePath | ( | ) |
パスを閉じる
カレントのサブパスの終点から始点に向かって線を追加しパスを閉じます。 既に閉じている(終点と始点が同じ座標)場合は何もしましせん。 カレントのサブパスが保持する点の数が2点以下の場合も、パスを閉じることは できません。
| void CvMoveTo | ( | int | x, | |
| int | y | |||
| ) |
カレントポイントを移動する
新しいサブパスを準備します。
この関数を実行するとカレントポイントをx,yに移動します。
| x | カレントポイントX | |
| y | カレントポイントY |
| 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 |
| void CvLineToRel | ( | int | dx, | |
| int | dy | |||
| ) |
カレントパスに直線を相対座標指定で追加する
この関数は相対座標指定タイプの CvLineTo() です。 カレントパスに直線を追加します。
直線はカレントポイントからdx,dy分移動した座標に引かれます。
cp=カレントポイント
CvLineTo( cpx+dx , cpy+dy );
と等価です。
カレントポイントが無い場合、この関数は実行を無視します。 この関数を正常終了するとカレントポイントは(cpx+dx,cpy+dy)座標になります。
| dx | 直線の終点座標X(移動量、カレントポイントからの相対で指定) | |
| dy | 直線の終点座標Y(移動量、カレントポイントからの相対で指定) |
| 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 |
| 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 CvRectangle | ( | int | x, | |
| int | y, | |||
| int | w, | |||
| int | h | |||
| ) |
カレントパスに矩形を追加する
カレントパスに矩形クローズドパスを追加します。
この関数はカレントポイント位置に矩形を追加します。
| x | 矩形左下座標X | |
| y | 矩形左下座標Y | |
| w | 矩形の幅 | |
| h | 矩形の高さ |
| 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 | 終了角度 |
| 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 | 終了角度 |
| void CvPreservePath | ( | ) |
パスデータの維持を指示する
輪郭 CvStroke()、塗りつぶし CvFill()、クリップ CvClip() を実行後も パスのデータを維持するように指示します。
通常、CvStroke() CvFill() CvClip() は実行後カレントのパスは消えてしまいます。
CvStroke() CvFill() CvClip() をコールする前に、この CvPreservePath() をコールしておくと カレントのパスデータが維持されます。
| void CvStroke | ( | ) |
輪郭線を描く
カレントのパスをカレントの色、線種、太さで輪郭線を描きます。
コマンド実行後カレントのパスデータは消えてしまいます。
パスデータを維持させたい場合は CvPreservePath() を実行前にコールします。
| void CvFill | ( | ) |
塗りつぶす
カレントのパスをカレントの色で塗りつぶします。
コマンド実行後カレントのパスデータは消えてしまいます。
パスデータを維持させたい場合は CvPreservePath() を実行前にコールします。
| void CvClip | ( | ) |
| void CvResetClip | ( | ) |
クリッピングを解除する
クリッピングを解除します。 ※現在この関数は未対応です。機能しません。
| void CvSave | ( | ) |
状態(変換マトリックス)を保存する
現在の状態(変換マトリックス)を保存します。
| void CvRestore | ( | ) |
状態(変換マトリックス)を復元する
状態(変換マトリックス)を CvSave() で保存した時点に戻します。
| void CvTransformTranslate | ( | int | tx, | |
| int | ty | |||
| ) |
変換マトリックスに平行移動を追加
変換マトリックスに平行移動効果を追加します。
(原点が指定した座標に移動します。)
以降の描画に影響を与えます。既に描かれているものには影響しません。
変形効果は現在の値に追加されます。
新たに効果を与える場合はCvTransformReset()で効果をリセットしてください。
| tx | X方向移動量 | |
| ty | Y方向移動量 |
| 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 CvShowText | ( | const char * | text, | |
| int | size | |||
| ) |
文字列を描画する
カレントポイント位置に CvSelectFont() で指定した書体で文字列を表示します。 現在の変換計数を考慮します(変換計数の影響を受けます)
| text | 描画する文字列 | |
| size | 文字のサイズ(文字高をドットで指定) |
| void CvGetTextExtents | ( | const char * | text, | |
| int | size, | |||
| int & | ascender, | |||
| int & | width, | |||
| int & | height | |||
| ) |
文字列を描画するのに必要なサイズを取得する
文字列を描画するのに必要なサイズを取得します。
CvSelectFont() で指定された書体を使用します。 現在の変換計数を考慮します(変換計数の影響を受けます)
| text | 文字列 | |
| size | 文字のサイズ | |
| ascender | ベースラインから上のサイズ(高さ) | |
| width | 文字列全体の幅 | |
| height | 文字列全体の高さ |
| void CvGetCurrent | ( | int & | x, | |
| int & | y | |||
| ) |
カレントポイントを取得する
カレントポイント(現在のペンの位置)を取得します。
| x | カレントポイントX座標 | |
| y | カレントポイントY座標 |