最も近い入力点(母点)の探索

Namespace: fvalgcli
Assembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)

Syntax

C#
public static int fnFIE_cg_voronoi_nearest_gnrt(
	FHANDLE hvrni,
	PNT_T pnt,
	ref int near_gnrt_no
)
Visual Basic
Public Shared Function fnFIE_cg_voronoi_nearest_gnrt ( 
	hvrni As FHANDLE,
	pnt As PNT_T,
	ByRef near_gnrt_no As Integer
) As Integer

Parameters

hvrni
Type: fvalgcli..::..FHANDLE
2次元ボロノイ図のハンドル
pnt
Type: fvalgcli..::..PNT_T
調査点
near_gnrt_no
Type: System..::..Int32%
最近母点の番号

Return Value

Type: Int32
以下のエラーコードを返します。

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された オブジェクトがボロノイ図ではない オープンが完了していないか ボロノイ図が作成されていないか
F_ERR_INVALID_PARAM 不正なパラメータが渡された 調査点がボロノイ図の有効範囲に入っていない near_gnrt_no にヌルポインタが渡された
F_ERR_NO_LICENCE ライセンスエラー

Remarks

Examples

C# Copy imageCopy
//    $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_nearest_gnrt()
        {
            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;

            // 探索用変数.
            PNT_T pnt;                //調査点 [in].
            int near_gnrt_no = 1;    //最近母点の番号 [out].
            int ans_no = 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;

                // ボロノイ図オブジェクトの生成.
                hvrni = api.fnFIE_cg_voronoi_open(pnts, num, sx, sy, ex, ey);

                if (hvrni == FHANDLE.Zero)
                    Console.WriteLine("エラーが発生しました");

                // 調査点の座標を設定.
                pnt = PNT_T.init(9, 9);

                // 最近母点の探索を実行.
                status = api.fnFIE_cg_voronoi_nearest_gnrt(hvrni, pnt, ref near_gnrt_no);

                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);

                // 結果を出力する.
                ConsoleOut.WriteFunctionName(":\t");
                Console.WriteLine("near_gnrt_no = {0}", near_gnrt_no);
                Console.Write(" ...");
                ConsoleOut.IsTrue(ans_no == near_gnrt_no);
            }
            finally
            {
                hvrni.Dispose();
                pnts.Dispose();
            }
        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli

Public Partial Class FIE
    <FvPluginExecute> _
    Public Sub fnFIE_cg_voronoi_nearest_gnrt()
        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 pnt As PNT_T
        '調査点 [in].
        Dim near_gnrt_no As Integer = 1
        '最近母点の番号 [out].
        Dim ans_no 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

            ' ボロノイ図オブジェクトの生成.
            hvrni = api.fnFIE_cg_voronoi_open(pnts, num, sx, sy, ex, ey)

            If hvrni = FHANDLE.Zero Then
                Console.WriteLine("エラーが発生しました")
            End If

            ' 調査点の座標を設定.
            pnt = PNT_T.init(9, 9)

            ' 最近母点の探索を実行.
            status = api.fnFIE_cg_voronoi_nearest_gnrt(hvrni, pnt, near_gnrt_no)

            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))

            ' 結果を出力する.
            ConsoleOut.WriteFunctionName(":" & vbTab)
            Console.WriteLine("near_gnrt_no = {0}", near_gnrt_no)
            Console.Write(" ...")
            ConsoleOut.IsTrue(ans_no = near_gnrt_no)
        Finally
            hvrni.Dispose()
            pnts.Dispose()
        End Try
    End Sub
End Class

See Also