2次元ボロノイ図の各母点に関する情報の取得
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_cg_voronoi_get_gnrt_info( FHANDLE hvrni, int gnrt_no, ref F_CG_VG_INFO_PTR info ) |
Visual Basic |
---|
Public Shared Function fnFIE_cg_voronoi_get_gnrt_info ( hvrni As FHANDLE, gnrt_no As Integer, ByRef info As F_CG_VG_INFO_PTR ) As Integer |
Parameters
- hvrni
- Type: fvalgcli..::..FHANDLE
2次元ボロノイ図のハンドル
- gnrt_no
- Type: System..::..Int32
調査母点番号
- info
- Type: fvalgcli..::..F_CG_VG_INFO_PTR%
母点情報構造体。(IntPtr.Zero で初期化してください。取得したアドレスは解放しないでください。)
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 | |
---|---|---|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | 不正なオブジェクトが渡された | オブジェクトがボロノイ図ではない オープンが完了していないか ボロノイ図が作成されていないか |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された | 調査点がボロノイ図の有効範囲に入っていない info が IntPtr.Zero で初期化されていない |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { [FvPluginExecute] public void fnFIE_cg_voronoi_get_gnrt_info() { int status = (int)f_err.F_ERR_NONE; // ボロノイ図オブジェクト作成用パラメータ. FHANDLE hvrni = FHANDLE.Zero; // ボロノイ図オブジェクト [in]. PNT_T_PTR pnts = PNT_T_PTR.Zero; int num; int sx; int sy; int ex; int ey; // ボロノイ図情報取得用変数. int gnrt_no; // 情報を取得したい母点の番号. F_CG_VG_INFO_PTR info = F_CG_VG_INFO_PTR.Zero; // ボロノイ図の母点情報を格納・・・注意;ボロノイ図オブジェクト解放時に同時に解放されるため,個別に解放しない. const int ans_num = 4; try { // 母点の座標を設定. num = 5; pnts = PNT_T_PTR.alloc(num); pnts[0] = PNT_T.init(5, 5); pnts[1] = PNT_T.init(5, 15); pnts[2] = PNT_T.init(15, 5); pnts[3] = PNT_T.init(15, 15); pnts[4] = PNT_T.init(10, 10); // ボロノイ図有効範囲の設定. sx = 0; sy = 0; ex = 20; ey = 20; // 情報を取得したい母点番号の設定. gnrt_no = 4; // ボロノイ図オブジェクトの生成. hvrni = api.fnFIE_cg_voronoi_open(pnts, num, sx, sy, ex, ey); if (hvrni == FHANDLE.Zero) Console.Write("エラーが発生しました"); // ボロノイ図情報の取得. status = api.fnFIE_cg_voronoi_get_gnrt_info(hvrni, gnrt_no, ref info); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 結果を出力する. ConsoleOut.WriteFunctionName(":\n"); Console.WriteLine("bnd : {0}", info.bnd); // F_CG_BND_RGN:境界が有限、F_CG_UNBND_RGN:境界が無限. Console.WriteLine("num : {0}", info.num); // 指定した母点に隣接している母点の数. Console.WriteLine("area : {0}", info.area); // 指定した母点のボロノイ細胞の面積. Console.WriteLine("ve_info_no : ({0})", info.ve_info.at(2).no); // ボロノイ辺の隣にある母点の番号. Console.WriteLine("ve_info_st : ({0},{1})", info.ve_info.at(2).st.x, info.ve_info.at(2).st.y); // ボロノイ辺の始点. Console.WriteLine("ve_info_ed : ({0},{1})", info.ve_info.at(2).ed.x, info.ve_info.at(2).ed.y); // ボロノイ辺の終点. Console.Write(" ..."); ConsoleOut.IsTrue(ans_num == info.num); } finally { hvrni.Dispose(); // ボロノズオブジェクト解放時にinfoも解放される. pnts.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE <FvPluginExecute> _ Public Sub fnFIE_cg_voronoi_get_gnrt_info() Dim status As Integer = CInt(f_err.F_ERR_NONE) ' ボロノイ図オブジェクト作成用パラメータ. Dim hvrni As FHANDLE = FHANDLE.Zero ' ボロノイ図オブジェクト [in]. Dim pnts As PNT_T_PTR = PNT_T_PTR.Zero Dim num As Integer Dim sx As Integer Dim sy As Integer Dim ex As Integer Dim ey As Integer ' ボロノイ図情報取得用変数. Dim gnrt_no As Integer ' 情報を取得したい母点の番号. Dim info As F_CG_VG_INFO_PTR = F_CG_VG_INFO_PTR.Zero ' ボロノイ図の母点情報を格納・・・注意;ボロノイ図オブジェクト解放時に同時に解放されるため,個別に解放しない. Const ans_num As Integer = 4 Try ' 母点の座標を設定. num = 5 pnts = PNT_T_PTR.alloc(num) pnts(0) = PNT_T.init(5, 5) pnts(1) = PNT_T.init(5, 15) pnts(2) = PNT_T.init(15, 5) pnts(3) = PNT_T.init(15, 15) pnts(4) = PNT_T.init(10, 10) ' ボロノイ図有効範囲の設定. sx = 0 sy = 0 ex = 20 ey = 20 ' 情報を取得したい母点番号の設定. gnrt_no = 4 ' ボロノイ図オブジェクトの生成. hvrni = api.fnFIE_cg_voronoi_open(pnts, num, sx, sy, ex, ey) If hvrni = FHANDLE.Zero Then Console.Write("エラーが発生しました") End If ' ボロノイ図情報の取得. status = api.fnFIE_cg_voronoi_get_gnrt_info(hvrni, gnrt_no, info) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 結果を出力する. ConsoleOut.WriteFunctionName(":" & vbLf) Console.WriteLine("bnd : {0}", info.bnd) ' F_CG_BND_RGN:境界が有限、F_CG_UNBND_RGN:境界が無限. Console.WriteLine("num : {0}", info.num) ' 指定した母点に隣接している母点の数. Console.WriteLine("area : {0}", info.area) ' 指定した母点のボロノイ細胞の面積. Console.WriteLine("ve_info_no : ({0})", info.ve_info.at(2).no) ' ボロノイ辺の隣にある母点の番号. Console.WriteLine("ve_info_st : ({0},{1})", info.ve_info.at(2).st.x, info.ve_info.at(2).st.y) ' ボロノイ辺の始点. Console.WriteLine("ve_info_ed : ({0},{1})", info.ve_info.at(2).ed.x, info.ve_info.at(2).ed.y) ' ボロノイ辺の終点. Console.Write(" ...") ConsoleOut.IsTrue(ans_num = info.num) Finally hvrni.Dispose() ' ボロノズオブジェクト解放時にinfoも解放される. pnts.Dispose() End Try End Sub End Class |