2線分の交差状況(浮動小数点型)

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

Syntax

C#
public static int fnFIE_cg_2segments_cross_status_d(
	DSGMT_T sgmt1,
	DSGMT_T sgmt2,
	int op_flag,
	ref f_cg_seg_status seg_status
)
Visual Basic
Public Shared Function fnFIE_cg_2segments_cross_status_d ( 
	sgmt1 As DSGMT_T,
	sgmt2 As DSGMT_T,
	op_flag As Integer,
	ByRef seg_status As f_cg_seg_status
) As Integer

Parameters

sgmt1
Type: fvalgcli..::..DSGMT_T
線分1
sgmt2
Type: fvalgcli..::..DSGMT_T
線分2
op_flag
Type: System..::..Int32
2線分の開・閉フラグ
  • 0 :2線分は開線分
  • 1 :2線分は閉線分
seg_status
Type: fvalgcli..::..f_cg_seg_status%
2線分の交差状況
  • F_CG_SGMT_CROSS :(内点同士で)交わる。
  • F_CG_SGMT_OVERLAP :2線分が部分的に重なる。ただし、2線分は一致しない
  • F_CG_SGMT_COINCIDE :2線分が完全に一致する。
  • F_CG_SGMT_TOUCH :(閉線分の場合のみ) 端点が他方の内点で接する。
  • F_CG_SGMT_JOINT :(閉線分の場合のみ) 端点どうしで接する。ただし、2線分は一致しない。
  • F_CG_SGMT_NOT_CROSS :それ以外(共通点はまったくない)

Return Value

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

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
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_2segments_cross_status_d()
        {
            int status = (int)f_err.F_ERR_NONE;

            DSGMT_T sgmt1;        // 線分1.
            DSGMT_T sgmt2;        // 線分2.
            int op_flag = 1;    // 2線分の開・閉フラグ(0:開線分、1:閉線分).
            f_cg_seg_status seg_status = new f_cg_seg_status();    // 2線分の交差状況.

            // 線分を設定する.
            sgmt1.st.x = 0.1;
            sgmt1.st.y = 0.1;
            sgmt1.ed.x = 30.3;
            sgmt1.ed.y = 30.3;

            const f_cg_seg_status ans_seg_status = f_cg_seg_status.F_CG_SGMT_COINCIDE;
            sgmt2.st.x = sgmt1.st.x;
            sgmt2.st.y = sgmt1.st.y;
            sgmt2.ed.x = sgmt1.ed.x;
            sgmt2.ed.y = sgmt1.ed.y;

            // 2線分の交差状況(浮動小数点型).
            status = api.fnFIE_cg_2segments_cross_status_d(sgmt1, sgmt2, op_flag, ref seg_status);

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

            // 結果を出力する.
            ConsoleOut.WriteFunctionName(":\t");
            Console.Write(seg_status.ToString() + " ...");
            ConsoleOut.IsTrue(ans_seg_status == seg_status);
        }
    }
}


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_2segments_cross_status_d()
        Dim status As Integer = CInt(f_err.F_ERR_NONE)

        Dim sgmt1 As DSGMT_T
        ' 線分1.
        Dim sgmt2 As DSGMT_T
        ' 線分2.
        Dim op_flag As Integer = 1
        ' 2線分の開・閉フラグ(0:開線分、1:閉線分).
        Dim seg_status As New f_cg_seg_status()
        ' 2線分の交差状況.
        ' 線分を設定する.
        sgmt1.st.x = 0.1
        sgmt1.st.y = 0.1
        sgmt1.ed.x = 30.3
        sgmt1.ed.y = 30.3

        Const  ans_seg_status As f_cg_seg_status = f_cg_seg_status.F_CG_SGMT_COINCIDE
        sgmt2.st.x = sgmt1.st.x
        sgmt2.st.y = sgmt1.st.y
        sgmt2.ed.x = sgmt1.ed.x
        sgmt2.ed.y = sgmt1.ed.y

        ' 2線分の交差状況(浮動小数点型).
        status = api.fnFIE_cg_2segments_cross_status_d(sgmt1, sgmt2, op_flag, seg_status)

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

        ' 結果を出力する.
        ConsoleOut.WriteFunctionName(":" & vbTab)
        Console.Write(seg_status.ToString() & " ...")
        ConsoleOut.IsTrue(ans_seg_status = seg_status)
    End Sub
End Class

See Also