外接矩形の取得
Namespace: FVIL.GDIAssembly: 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 |
---|---|
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 |
---|---|
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 |