リージョンの生成 (多角形)

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

Syntax

C#
public virtual void Create(
	CFviPolyline polyline
)
Visual Basic
Public Overridable Sub Create ( 
	polyline As CFviPolyline
)

Parameters

polyline
Type: FVIL.Data..::..CFviPolyline
多角形

Remarks

多角形のリージョンを生成します。

与えられた頂点を、Pn = { p(0),p(1),...,p(n-2),p(n-1)} とし、これらの頂点により作成される多角形のリージョンを作成します。 p(0)と p(n-1)は、接続しているとして処理をされます。(Close メンバの値は無視します) 但し、頂点数が1の場合は点、2の場合は線状のリージョンとなります。

座標の制限:
図形の座標は、-16777216.0~16777215.0 の範囲に限定されます。 範囲を超える座標が指定された場合は、例外を発行します。

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

エラーコード:

ErrorCode メンバ内容
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリ不足の為、生成に失敗しました。
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。

Examples

ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;

namespace User.SampleCode.Data
{
    public partial class Region
    {
        /// <summary>
        /// [リージョン構造クラス]
        /// 初期値指定コンストラクタ (多角形)
        /// </summary>
        [FvPluginExecute]
        public void Polyline_ctor()
        {
            // 0) 点列の作成
            FVIL.Data.CFviPolyline polyline = new FVIL.Data.CFviPolyline();
            polyline.Resize(3);
            polyline[0] = new FVIL.Data.CFviPoint(4.0, 0.0);
            polyline[1] = new FVIL.Data.CFviPoint(8.0, 6.0);
            polyline[2] = new FVIL.Data.CFviPoint(0.0, 6.0);
            polyline.Close = true;

            // 1) インスタンスの準備とリージョンの生成.
            FVIL.Data.CFviRegion region = new FVIL.Data.CFviRegion(polyline);

            // E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir + "\\RegionPolyline_ctor.png");
        }
        /// <summary>
        /// [リージョン構造クラス]
        /// リージョンの生成 (多角形)
        /// </summary>
        [FvPluginExecute]
        public void Polyline_Create()
        {
            // 0) 点列の作成
            FVIL.Data.CFviPolyline polyline = new FVIL.Data.CFviPolyline();
            polyline.Resize(3);
            polyline[0] = new FVIL.Data.CFviPoint(4.0, 0.0);
            polyline[1] = new FVIL.Data.CFviPoint(8.0, 6.0);
            polyline[2] = new FVIL.Data.CFviPoint(0.0, 6.0);
            polyline.Close = true;

            // 1) インスタンスの準備.
            FVIL.Data.CFviRegion region = new FVIL.Data.CFviRegion();

            // 2) リージョンの生成.
            region.Create( polyline );

            // E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir + "\\RegionPolyline_Create.png");
        }        
    }
}


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli

Namespace SampleCode.Data
    Public Partial Class Region
        ''' <summary>
        ''' [リージョン構造クラス]
        ''' 初期値指定コンストラクタ (多角形)
        ''' </summary>
        <FvPluginExecute> _
        Public Sub Polyline_ctor()
            ' 0) 点列の作成
            Dim polyline As New FVIL.Data.CFviPolyline()
            polyline.Resize(3)
            polyline(0) = New FVIL.Data.CFviPoint(4.0, 0.0)
            polyline(1) = New FVIL.Data.CFviPoint(8.0, 6.0)
            polyline(2) = New FVIL.Data.CFviPoint(0.0, 6.0)
            polyline.Close = True

            ' 1) インスタンスの準備とリージョンの生成.
            Dim region As New FVIL.Data.CFviRegion(polyline)

            ' E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir & "\RegionPolyline_ctor.png")
        End Sub
        ''' <summary>
        ''' [リージョン構造クラス]
        ''' リージョンの生成 (多角形)
        ''' </summary>
        <FvPluginExecute> _
        Public Sub Polyline_Create()
            ' 0) 点列の作成
            Dim polyline As New FVIL.Data.CFviPolyline()
            polyline.Resize(3)
            polyline(0) = New FVIL.Data.CFviPoint(4.0, 0.0)
            polyline(1) = New FVIL.Data.CFviPoint(8.0, 6.0)
            polyline(2) = New FVIL.Data.CFviPoint(0.0, 6.0)
            polyline.Close = True

            ' 1) インスタンスの準備.
            Dim region As New FVIL.Data.CFviRegion()

            ' 2) リージョンの生成.
            region.Create(polyline)

            ' E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir & "\RegionPolyline_Create.png")
        End Sub
    End Class
End Namespace

Exceptions

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

See Also