多角形の描画

Namespace: FVIL.Paint
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public static void DrawPolygon(
	CFviImage image,
	CFviPolyline polyline,
	double density,
	FillMode fill_mode
)
Visual Basic
Public Shared Sub DrawPolygon ( 
	image As CFviImage,
	polyline As CFviPolyline,
	density As Double,
	fill_mode As FillMode
)

Parameters

image
Type: FVIL.Data..::..CFviImage
描画先の画像オブジェクト
polyline
Type: FVIL.Data..::..CFviPolyline
頂点群 (1点以上)
density
Type: System..::..Double
濃度値
fill_mode
Type: FVIL.Paint..::..FillMode
塗り潰しの方法

Remarks

与えられた頂点座標より多角形を求めて画像上に描画します。
引数の fill_mode には FillMode に定義された定数を指定してください。

与えられた頂点群は、閉空間として扱われます。(引数 polylineClose メンバの値は無視されます。) 但し、頂点数が 1 の場合は点を、2 の場合は線分を描画します。
塗り潰しは、ポリゴンと輪郭とスキャンラインの交点を求め、 求められた各点の間を水平成分で結んでいく処理を各スキャンラインについて繰り返すことで実現されています。 その為、例えば一筆書きで描かれた星型のように内側にできる閉じた領域は塗り潰されません。
処理可能な画像種別とチャネル及び濃度値の扱い:
画像種別チャネル数濃度値の扱い
BIN1~16 濃度値を 0/1 に正規化して、全てのチャネルに適用します。
UC81~16 濃度値を 0~255 に正規化して、全てのチャネルに適用します。
S161~16 各要素の濃度値を -32768~32767 に正規化して、各チャネルに適用します。
US161~16 各要素の濃度値を 0~65535 に正規化して、各チャネルに適用します。
D641~16 濃度値を、全てのチャネルに適用します。
RGB321 濃度値を 0~255 に正規化して、各プレーン(R,G,B)に同一の値を適用します。 尚、ビット深度は 8bit にのみ対応しています。それ以外のビット深度の時はエラーは返さず無視されます。

実行に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。
12FVIL.ErrorCode.INVALID_OBJECT画像オブジェクトが不正です。
93FVIL.ErrorCode.INVALID_IMAGETYPE画像種別が不正です。
99FVIL.ErrorCode.INVALID_CHANNEL画像チャネル数が不正です。
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリの確保に失敗しました。

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also