外接矩形の取得

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

Syntax

C#
public override CFviRectangle GetClipRect()
Visual Basic
Public Overrides Function GetClipRect As CFviRectangle

Return Value

Type: CFviRectangle

図形に外接する最小の矩形を取得します。

返される矩形には 回転角(Angle) と 機軸(Center) が設定されています。
回転角には、この図形の Angle から取得した値が設定されます。 回転の機軸は、この図形の Axis (Position からの相対値)を 矩形の左上からの相対値に変換した値が設定されます。


要素数が 0 の時:

矩形の始点と終点に 基準点(BasePosition) を格納して返します。


要素数が 1 以上の時:

点群を内包する最小の矩形を返します。

Examples

ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode.GDI
{
    public partial class GdiPoints
    {
        // ============================================================
        /// <summary>
        /// 外接矩形の取得.
        /// </summary>
        [FvPluginExecute]
        public void GetClipRect()
        {
            // 0) 配列の作成.
            fvalgcli.PNT_T[] datas = new fvalgcli.PNT_T[10];
            for (int i = 0; i < 10; i++)
            {
                datas[i].x = i * 10 + i;
                datas[i].y = i * 10 + i;
            }
            FVIL.PNT_T_ARRAY pnts = new FVIL.PNT_T_ARRAY(datas);

            // 1) インスタンスの準備と生成.
            FVIL.GDI.CFviGdiPoints src = new FVIL.GDI.CFviGdiPoints(pnts);

            // 2) 処理実行.
            FVIL.Data.CFviRectangle cliprect = src.GetClipRect();

            // E) 確認.
            Assert.IsTrue(datas[0].x == cliprect.St.X 
                       && datas[0].y == cliprect.St.Y, "cliprect:St({0},{1})", cliprect.St.X, cliprect.St.Y );

            Assert.IsTrue(datas[9].x == cliprect.Ed.X
                       && datas[9].y == cliprect.Ed.Y, "cliprect:Ed({0},{1})", cliprect.Ed.X, cliprect.Ed.Y);

        }
    }
}


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode.GDI
    Public Partial Class GdiPoints
        ' ============================================================
        ''' <summary>
        ''' 外接矩形の取得.
        ''' </summary>
        <FvPluginExecute> _
        Public Sub GetClipRect()
            ' 0) 配列の作成.
            Dim datas As fvalgcli.PNT_T() = New fvalgcli.PNT_T(9) {}
            For i As Integer = 0 To 9
                datas(i).x = i * 10 + i
                datas(i).y = i * 10 + i
            Next
            Dim pnts As New FVIL.PNT_T_ARRAY(datas)

            ' 1) インスタンスの準備と生成.
            Dim src As New FVIL.GDI.CFviGdiPoints(pnts)

            ' 2) 処理実行.
            Dim cliprect As FVIL.Data.CFviRectangle = src.GetClipRect()

            ' E) 確認.
            Assert.IsTrue(datas(0).x = cliprect.St.X AndAlso datas(0).y = cliprect.St.Y, "cliprect:St({0},{1})", cliprect.St.X, cliprect.St.Y)

            Assert.IsTrue(datas(9).x = cliprect.Ed.X AndAlso datas(9).y = cliprect.Ed.Y, "cliprect:Ed({0},{1})", cliprect.Ed.X, cliprect.Ed.Y)

        End Sub
    End Class
End Namespace

See Also