画像描画
[基本画像操作]


説明

本ライブラリは、画像メモリに対して幾何図形を描画するライブラリです。

濃度値
濃度値を格納した配列の要素数はチャネル数だけ必要となります。 ただし、 F_IMG_RGBQUAD 形式のみチャネル数は1、濃度値の配列の要素数は3で固定となります。 濃度値を格納した配列の要素数がそれ以上の場合は、エラーとはなりませんが処理には使用されません。 配列の要素数はチェックしていません。 チャネル数より配列の要素数が少ない場合の動作は保証しません。 さらに、本関数では、濃度値は自動的に形式毎に有効な値に変換されます。 出力画像が F_IMG_DOUBLE 、 F_IMG_BIN 形式以外では、 濃度値は fnFIE_d4i5() により四捨五入で整数に変換されます。 濃度値が対象となる画素タイプの濃度値範囲を超えていた場合は、サチュレーション処理が行われます。 F_IMG_BIN 形式は、0または1に変換されます。 0以下の値は0に、それ以外は1となります。

領域の塗りつぶし
円、楕円、長方形、多角形は線の描画以外に、内側、外側の塗りつぶし処理が行えます。 その際、内側の塗りつぶし領域は、描画される線を含みます。 外側の塗りつぶし領域は、描画される線を含みません。

小数点の扱い
与えられた座標点、半径などの値は四捨五入され描画されます。 四捨五入には fnFIE_d4i5() を使用しています。


列挙型

enum  f_draw_fill_mode {
  F_DRAW_LINE = 0, F_DRAW_FILL_IN = 1,
  F_DRAW_FILL_OUT = 2
}
 図形描画のスタイルの指定 [詳細]
enum  f_draw_curve_mode {
  F_DRAW_CUBIC_BSPLINE = 0, F_DRAW_QUADRATIC_BEZIER = 1,
  F_DRAW_CUBIC_CATMULL_ROM = 2, F_DRAW_CUBIC_BEZIER = 3,
  F_DRAW_POLYGONAL_LINE = 99
}
 曲線の種類の指定 [詳細]

関数

INT FVALGAPI fnFIE_draw_circle (FHANDLE hImg, DOUBLE *val, enum f_draw_fill_mode mode, DPNT_T center, DOUBLE radius)
 円の描画
INT FVALGAPI fnFIE_draw_curve (FHANDLE hImg, DOUBLE *val, DPNT_T *pnts, INT num, enum f_draw_curve_mode mode)
 曲線の描画
DPNT_T *FVALGAPI fnFIE_draw_curve_get_point_set (DPNT_T *pnts, INT num_pnt, enum f_draw_curve_mode mode, INT *num_inter)
 曲線補間をして、補間点群を取得
INT FVALGAPI fnFIE_draw_ellipse (FHANDLE hImg, DOUBLE *val, enum f_draw_fill_mode mode, DPNT_T center, DOUBLE major, DOUBLE minor, DOUBLE theta)
 楕円の描画
INT FVALGAPI fnFIE_draw_line_seg (FHANDLE hImg, DOUBLE *val, DPNT_T start, DPNT_T end)
 線分の描画
INT FVALGAPI fnFIE_draw_line (FHANDLE hImg, DOUBLE *val, DLINE_T line)
 直線の描画
INT FVALGAPI fnFIE_draw_point (FHANDLE hImg, DOUBLE *val, DPNT_T pnt)
 点の描画
INT FVALGAPI fnFIE_draw_rect (FHANDLE hImg, DOUBLE *val, enum f_draw_fill_mode mode, DPNT_T start, DOUBLE width, DOUBLE height, DPNT_T center, DOUBLE theta)
 長方形の描画
INT FVALGAPI fnFIE_draw_polygon (FHANDLE hImg, DOUBLE *val, enum f_draw_fill_mode mode, DPNT_T *pnts, INT num)
 多角形の描画

列挙型

図形描画のスタイルの指定

描画する図形のスタイルを指定します。

列挙型の値:
F_DRAW_LINE  図形の線のみを描画
F_DRAW_FILL_IN  図形の内側を塗りつぶし
F_DRAW_FILL_OUT  図形の外側を塗りつぶし

曲線の種類の指定

描画する曲線の種類を指定します。

列挙型の値:
F_DRAW_CUBIC_BSPLINE  3次Bスプライン
F_DRAW_QUADRATIC_BEZIER  2次ベジェ
F_DRAW_CUBIC_CATMULL_ROM  3次カットマル-ロム
F_DRAW_CUBIC_BEZIER  3次ベジェ
F_DRAW_POLYGONAL_LINE  折れ線


関数

INT FVALGAPI fnFIE_draw_circle ( FHANDLE  hImg,
DOUBLE *  val,
enum f_draw_fill_mode  mode,
DPNT_T  center,
DOUBLE  radius 
)

円の描画

指定されたパラメータにより、円を描画します。 本描画関数は、中心点、および半径はは fnFIE_d4i5() にて四捨五入され描画されます。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

座標系は、FIEの座標系に準拠します。 1画素は、その中心を座標(0, 0)としています。

下図に示す円は、中心が(4.0, 4.0)、半径が 2.0 の円を描画した場合の例です。 なお、与えられたパラメータは四捨五入されて描画されます。 そのため、中心が(3.5, 3.5)、半径が1.5の円と、中心が(4.4, 4.4)、半径が2.4の円は、 下図と同じ円が描画されることになります。 また、半径が0の円は、中心座標1画素のみの点として描画されます。

draw_circle.png

注意:
指定する各パラメータは、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。
  • radius <= 268435455
  • I32_MIN(-2147483648) <= (center.x, center.y) + radius <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= (center.x + bitpos, center.y) + radius <= I32_MAX(2147483647):F_IMG_BIN※1
※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] mode 描画モード
  • F_DRAW_LINE 図形の線のみを描画
  • F_DRAW_FILL_IN 図形の内側を塗りつぶし
  • F_DRAW_FILL_OUT 図形の外側を塗りつぶし
[in] center 中心点
[in] radius 半径
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_NOMEMORY メモリ不足により異常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
処理結果例:
fie_draw_circle.png

線のみ描画

fie_draw_circle_fill_in.png

内側塗りつぶし

fie_draw_circle_fill_out.png

外側塗りつぶし

INT FVALGAPI fnFIE_draw_curve ( FHANDLE  hImg,
DOUBLE *  val,
DPNT_T pnts,
INT  num,
enum f_draw_curve_mode  mode 
)

曲線の描画

与えられた頂点座標より、曲線を描画します。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

与えられた頂点は、指定された曲線の近似計算により補間点が計算された後に、 その補間点の小数点以下は四捨五入され描画されます。 求められた補間点が隣接していない場合、線分描画の関数を利用してして点間は補間されます。 なお、F_DRAW_POLYGONAL_LINEは、与えられた頂点を直接四捨五入し、頂点間を線分で結びます。

本関数では処理を行う際に pnts 配列の座標値をオフセットした値に書き換えてから処理し、 最後にそのオフセット分を元に戻します。このため、座標値に非常に小さな値が入っていた場合、 桁落ちによって処理前と処理後で pnts 配列の座標値が微少に変化してしまうことがあります。 ご注意ください。

必要な頂点数
各曲線で必要な最小頂点数は以下の通りです。 頂点数が少ない場合はエラーとなります。 ただし、折れ線(F_DRAW_POLYGONAL_LINE)は、与えられた点群データが1の場合、点を描画します。 0以下の場合はエラーとなります。
  • 3次Bスプライン曲線(F_DRAW_CUBIC_BSPLINE) :7
  • 2次ベジェ曲線(F_DRAW_QUADRATIC_BEZIER) :5
  • 3次カットマル-ロム曲線(F_DRAW_CUBIC_CATMULL_ROM) :4
  • 折れ線(F_DRAW_POLYGONAL_LINE) :2
曲線の性質
  • ベジェ曲線はセグメントの始点と終点のみ通過します。 本実装での 2次のベジェ曲線では 3つの点から曲線が計算され、中点が制御点として働きます。 3つの定義点によるポリゴンの形状から描かれる曲線の形状を想像しやすいという特徴を持っています。 ここで、p(0)、p(1)、p(2)の3点からベジェ曲線を生成するとします。 本実装では、曲線のセグメント間の連結を滑らかにするために、始点をp(0)とp(1)の中点、 終点をp(1)とp(2)の中点としてベジェ曲線が求められます。 p(0)とp(2)上を通過しないことに注意してください。
  • スプライン曲線は、定義点をまったく通過せず、曲線は4点の内側に発生します。 定義点の移動に対して比較的緩慢に変化するので、滑らかな曲線を微妙にコントロールしたい場合に最も適しています。
  • カットマル−ロム曲線は、4つの定義点のうち、2番目の点を起点に、次の点までの曲線を描きます。 ベジェとはとは対照的です。 与えられた頂点上に曲線を通過させたい場合に使用します。
注意:
指定する座標値は、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。 ※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] pnts 点群データ
[in] num 点群の数
[in] mode 曲線の種類
  • F_DRAW_CUBIC_BSPLINE 3次Bスプライン曲線
  • F_DRAW_QUADRATIC_BEZIER 2次ベジェ曲線
  • F_DRAW_CUBIC_CATMULL_ROM 3次カットマル-ロム曲線
  • F_DRAW_POLYGONAL_LINE 折れ線
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_NOMEMORY メモリ不足により異常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算ができない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
処理結果例:
以下の処理結果例では、折れ線の上に各曲線を描画しています。
fie_draw_curve_3_bspline.png

3次Bスプライン曲線

fie_draw_curve_2_bezier.png

2次ベジェ曲線

fie_draw_curve_3_catmull.png

3次カットマル-ロム曲線

DPNT_T* FVALGAPI fnFIE_draw_curve_get_point_set ( DPNT_T pnts,
INT  num_pnt,
enum f_draw_curve_mode  mode,
INT *  num_inter 
)

曲線補間をして、補間点群を取得

与えられた頂点より曲線補間をして、その補間した点の座標を DPNT_T型の配列として得ることができます。 得られる座標は、浮動小数点型となります。 なお、使用済みの配列は fnOAL_free() により必ず領域を解放してください。

最小頂点数、各曲線の性質については、 fnFIE_draw_curve() を参照してください。

引数:
[in] pnts 頂点データ
[in] num_pnt 頂点の数
[in] mode 曲線の種類
  • F_DRAW_CUBIC_BSPLINE 3次Bスプライン曲線
  • F_DRAW_QUADRATIC_BEZIER 2次ベジェ曲線
  • F_DRAW_CUBIC_CATMULL_ROM 3次カットマル-ロム曲線
[out] num_inter 求められた補間点群の数
戻り値:
求められた曲線近似による補間点群の配列の先頭アドレスを返します。 メモリ不足、不正なパラメータが渡された場合、ライセンスエラー、未初期化エラー などで失敗した場合は、NULLを返します。

INT FVALGAPI fnFIE_draw_ellipse ( FHANDLE  hImg,
DOUBLE *  val,
enum f_draw_fill_mode  mode,
DPNT_T  center,
DOUBLE  major,
DOUBLE  minor,
DOUBLE  theta 
)

楕円の描画

指定されたパラメータにより、楕円を描画します。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

座標系は、FIEの座標系に準拠します。 1画素はその中心を座標(0, 0)としています。 下図に示す楕円は、中心が(5.0, 4.0)、長軸半径が3.0、短軸半径が2.0の楕円を描画した場合の例です。 また、長軸半径と短軸半径がともに0の楕円は、座標(5.0, 4.0)の点として描画されます。

draw_ellipse.png

注意:
指定する各パラメータは、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。
  • I32_MIN(-2147483648) <= (center.x, center.y) + major <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= (center.x, center.y) + minor <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= (center.x + bitpos, center.y) + major <= I32_MAX(2147483647):F_IMG_BIN※1
  • I32_MIN(-2147483648) <= (center.x + bitpos, center.y) + minor <= I32_MAX(2147483647):F_IMG_BIN※1
※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] mode 描画モード
  • F_DRAW_LINE 図形の線のみを描画
  • F_DRAW_FILL_IN 図形の内側を塗りつぶし
  • F_DRAW_FILL_OUT 図形の外側を塗りつぶし
[in] center 中心点
[in] major 長軸(x軸方向)の半径
[in] minor 短軸(y軸方向)の半径
[in] theta 回転角(ラジアン)
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_NOMEMORY メモリ不足により異常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算ができない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
処理結果例:
fie_draw_ellipse.png

線のみ描画

fie_draw_ellipse_fill_in.png

内側塗りつぶし

fie_draw_ellipse_fill_out.png

外側塗りつぶし

INT FVALGAPI fnFIE_draw_line_seg ( FHANDLE  hImg,
DOUBLE *  val,
DPNT_T  start,
DPNT_T  end 
)

線分の描画

与えられた始点と終点の座標より、線分を描画します。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

本描画関数は、始点、および終点は fnFIE_d4i5() にて四捨五入され描画されます。 ただし、始点、または終点が画像領域外の場合は、クリッピング処理が行われ、画像との交点が求められます。 求められた交点の小数点以下が四捨五入され、描画のための始点、または終点となります。 また、実装したアルゴリズムの特徴として、傾きが同じ線分の場合でも、始点と終点が異なった場合、 描画される線分が一致しない場合があります。

注意:
指定する各座標値は、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。
  • I32_MIN(-2147483648) <= start.x, start.y, end.x, end.y <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= (start.x + bitpos), start.y, (end.x+bitpos), end.y <= I32_MAX(2147483647):F_IMG_BIN※1
※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] start 描画開始点の座標
[in] end 描画終了点の座標
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参考文献:
  • コンピュータグラフィックス 理論と実践, ISBN 4-274-06405-0, P.78, P.116

処理結果例:
fie_draw_line_seg.png

INT FVALGAPI fnFIE_draw_line ( FHANDLE  hImg,
DOUBLE *  val,
DLINE_T  line 
)

直線の描画

指定されたパラメータにより、直線を描画します。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMS_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

本描画関数は、与えられた直線の方程式式から、描画のための始点と終点が求められます。 ただし、直線の方程式 ax + by + c = 0 における、aとbが閾値(1e-9)未満の場合、直線は描画されません。

実装したアルゴリズムの特徴として、傾きが同じ線分の場合でも、始点と終点が異なった場合、 描画される線分が一致しない場合があります。

引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] line 描画する直線の式
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参考文献:
  • コンピュータグラフィックス 理論と実践, ISBN 4-274-06405-0, P.78, P.116

処理結果例:
fie_draw_line.png

INT FVALGAPI fnFIE_draw_point ( FHANDLE  hImg,
DOUBLE *  val,
DPNT_T  pnt 
)

点の描画

与えられた座標点を描画します。 与えられた座標点の fnFIE_d4i5() にて四捨五入され描画されます。 対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

注意:
指定する座標値は、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。 ※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] pnt 座標点
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_img_set_dens()

INT FVALGAPI fnFIE_draw_rect ( FHANDLE  hImg,
DOUBLE *  val,
enum f_draw_fill_mode  mode,
DPNT_T  start,
DOUBLE  width,
DOUBLE  height,
DPNT_T  center,
DOUBLE  theta 
)

長方形の描画

指定されたパラメータにより、長方形を描画します。 なお、与えられたパラメータは fnFIE_d4i5() にて四捨五入されて描画されます。

対応している画素タイプは、F_IMG_BIN、F_IMG_S16、F_IMG_US16、F_IMG_UC8、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

座標系は、FIEの座標系に準拠します。 1画素はその中心を座標(0, 0)としています。 下図に示す長方形は、幅が6、高さが4として描画されています。 1画素の中心座標(0, 0)として考えた場合、幅が7画素、高さが5画素の長方形として描画されます。 そのため、幅と高さがともに0の長方形は、点として描画されます。

draw_rect.png

注意:
指定する各パラメータは、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。
  • I32_MIN(-2147483648) <= center.x, center.y <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= 4頂点の各座標 <= I32_MAX(2147483647):F_IMG_BIN以外
  • I32_MIN(-2147483648) <= 4頂点の各座標のx座標 + bitpos, y座標 <= I32_MAX(2147483647):F_IMG_BIN※1
※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] mode 描画モード
  • F_DRAW_LINE 図形の線のみを描画
  • F_DRAW_FILL_IN 図形の内側を塗りつぶし
  • F_DRAW_FILL_OUT 図形の外側を塗りつぶし
[in] start 始点
[in] width 
[in] height 高さ
[in] center 回転のための中心点
[in] theta 回転角(ラジアン)
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_NOMEMORY メモリ不足により異常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
処理結果例:
fie_draw_rect.png

線のみ描画

fie_draw_rect_fill_in.png

内側塗りつぶし

fie_draw_rect_fill_out.png

外側塗りつぶし

INT FVALGAPI fnFIE_draw_polygon ( FHANDLE  hImg,
DOUBLE *  val,
enum f_draw_fill_mode  mode,
DPNT_T pnts,
INT  num 
)

多角形の描画

与えられた頂点座標より、多角形を描画します。 なお、与えられた頂点群は fnFIE_d4i5() にて四捨五入されて描画されます。

対応している画素タイプは、F_IMG_BIN、F_IMG_UC8、F_IMG_S16、F_IMG_US16、F_IMG_DOUBLE、F_IMG_RGBQUADです。 ただし、F_IMG_RGBQUADはチャネル0のみが描画されます。 他のチャネルは描画されません。

与えられた頂点を Pn = { p(0),p(1),…,p(n-2),p(n-1)} とおくと、 本関数では p(0)と p(n-1) は、接続しているのとして処理をされます。 つまり与えられた頂点群は、閉空間として扱われます。 ただし、頂点数が1の場合は点を、2の場合は線分を描画します。

塗りつぶしは、ポリゴンと輪郭とスキャンラインの交点を求め、求められた各点の間を水平成分で 結んでいく処理を各スキャンラインについて繰り返すことで実現されています。 そのため、例えば一筆書きで描かれた星型のように内側にできる閉じた領域は塗りつぶされません。

本関数では処理を行う際に pnts 配列の座標値をオフセットした値に書き換えてから処理し、 最後にそのオフセット分を元に戻します。このため、座標値に非常に小さな値が入っていた場合、 桁落ちによって処理前と処理後で pnts 配列の座標値が微少に変化してしまうことがあります。 ご注意ください。

注意:
指定する座標値は、以下の条件を満たすように指定してください。 条件を満たさない場合、期待通りの動作ではなかったり、アクセス違反が発生することがあります。 ※1:bitpos(ブロック内の左上画素のビット位置)
引数:
[in,out] hImg 画像のハンドル(type:bin,uc8,s16,us16,double,rgbq)
[in] val 濃度値を格納した配列の先頭アドレス
[in] mode 描画モード
  • F_DRAW_LINE 図形の線のみを描画
  • F_DRAW_FILL_IN 図形の内側を塗りつぶし
  • F_DRAW_FILL_OUT 図形の外側を塗りつぶし
[in] pnts 頂点群
[in] num 頂点数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像が渡された
F_ERR_NOMEMORY メモリ不足により異常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参考文献:
  • コンピュータグラフィックス 理論と実践, ISBN 4-274-06405-0, P.99

処理結果例:
fie_draw_poly1.png

線のみ描画

fie_draw_poly_fill_in1.png

内側塗りつぶし

fie_draw_poly_fill_out1.png

外側塗りつぶし

fie_draw_poly2.png

線のみ描画

fie_draw_poly_fill_in2.png

内側塗りつぶし

fie_draw_poly_fill_out2.png

外側塗りつぶし


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:46 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2