列挙型 | |
enum | f_cg_seg_status { F_CG_SGMT_CROSS = 1, F_CG_SGMT_NOT_CROSS = 2, F_CG_SGMT_OVERLAP = 3, F_CG_SGMT_COINCIDE = 4, F_CG_SGMT_TOUCH = 5, F_CG_SGMT_JOINT = 6 } |
2線分の交差状況 [詳細] | |
関数 | |
INT FVALGAPI | fnFIE_cg_2segments_cross_status (SGMT_T sgmt1, SGMT_T sgmt2, INT op_flag, enum f_cg_seg_status *seg_status) |
2線分の交差状況(整数型) | |
INT FVALGAPI | fnFIE_cg_2segments_cross_status_d (DSGMT_T sgmt1, DSGMT_T sgmt2, INT op_flag, enum f_cg_seg_status *seg_status) |
2線分の交差状況(浮動小数点型) |
enum f_cg_seg_status |
INT FVALGAPI fnFIE_cg_2segments_cross_status | ( | SGMT_T | sgmt1, | |
SGMT_T | sgmt2, | |||
INT | op_flag, | |||
enum f_cg_seg_status * | seg_status | |||
) |
2線分の交差状況(整数型)
2線分の交差状況を判定します。 判定は、符号付三角形の符号を見ることにより線分に対して2点が反対側にあるかどうかという事実を用いています。
入力する線分は整数型となります。 入力する線分が浮動小数点型の場合は、 fnFIE_cg_2segments_cross_status_d() を使用してください。
[in] | sgmt1 | 線分1 |
[in] | sgmt2 | 線分2 |
[in] | op_flag | 2線分の開・閉フラグ
|
[out] | seg_status | 2線分の交差状況
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_cg_2segments_cross_status_d | ( | DSGMT_T | sgmt1, | |
DSGMT_T | sgmt2, | |||
INT | op_flag, | |||
enum f_cg_seg_status * | seg_status | |||
) |
2線分の交差状況(浮動小数点型)
2線分の交差状況を判定します。 判定は、符号付三角形の符号を見ることにより線分に対して2点が反対側にあるかどうかという事実を用いています。 本関数では、符号付三角形の解は 5.0e-10 未満の場合、0に置き換えられます。 符号付三角形は、3点 、
、
が与えられた場合、以下のように求められます。
入力する線分は浮動小数点型となります。 入力する線分が整数型の場合は、 fnFIE_cg_2segments_cross_status() を使用してください。
[in] | sgmt1 | 線分1 |
[in] | sgmt2 | 線分2 |
[in] | op_flag | 2線分の開・閉フラグ
|
[out] | seg_status | 2線分の交差状況
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |