単純多角形の符号付面積(整数型)
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_cg_polygon_area_calc(
PNT_T_PTR vrtx,
int num,
ref int area2
) |
Visual Basic |
---|
Public Shared Function fnFIE_cg_polygon_area_calc (
vrtx As PNT_T_PTR,
num As Integer,
ByRef area2 As Integer
) As Integer |
Parameters
- vrtx
- Type: fvalgcli..::..PNT_T_PTR
多角形の頂点
- num
- Type: System..::..Int32
頂点数( vrtx の要素数)
- area2
- Type: System..::..Int32%
単純多角形の符号付き面積の2倍値を返す
Return Value
Type:
Int32
以下のエラーコードを返します。
エラーコード:f_err | 内容 |
---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された |
F_ERR_NOMEMORY | メモリ不足 |
F_ERR_CALC_IMPOSSIBLE | 頂点列が単純多角形ではないため、計算不能(頂点数が3以上の場合) |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
Examples
C# | Copy |
---|
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;
namespace TC
{
public partial class FIE
{
[FvPluginExecute]
public void fnFIE_cg_polygon_area_calc()
{
int status = (int)f_err.F_ERR_NONE;
PNT_T_PTR vrtx = PNT_T_PTR.Zero;
int num;
int area2 = new int();
const int horz = 11;
const int vert = 22;
try
{
num = 3;
vrtx = PNT_T_PTR.alloc(num);
vrtx[0] = PNT_T.init(33, 44);
vrtx[1] = PNT_T.init(vrtx[0].x + horz, vrtx[0].y);
vrtx[2] = PNT_T.init(vrtx[1].x, vrtx[1].y + vert);
int ans_area2 = -horz * vert;
status = api.fnFIE_cg_polygon_area_calc(vrtx, num, ref area2);
Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
ConsoleOut.WriteFunctionName(": \t");
Console.Write("area2 = {0} ...", area2);
ConsoleOut.IsTrue(ans_area2 == area2);
}
finally
{
vrtx.Dispose();
}
}
}
} |
Visual Basic | Copy |
---|
Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli
Public Partial Class FIE
<FvPluginExecute> _
Public Sub fnFIE_cg_polygon_area_calc()
Dim status As Integer = CInt(f_err.F_ERR_NONE)
Dim vrtx As PNT_T_PTR = PNT_T_PTR.Zero
Dim num As Integer
Dim area2 As New Integer()
Const horz As Integer = 11
Const vert As Integer = 22
Try
num = 3
vrtx = PNT_T_PTR.alloc(num)
vrtx(0) = PNT_T.init(33, 44)
vrtx(1) = PNT_T.init(vrtx(0).x + horz, vrtx(0).y)
vrtx(2) = PNT_T.init(vrtx(1).x, vrtx(1).y + vert)
Dim ans_area2 As Integer = -horz * vert
status = api.fnFIE_cg_polygon_area_calc(vrtx, num, area2)
Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
ConsoleOut.WriteFunctionName(": " & vbTab)
Console.Write("area2 = {0} ...", area2)
ConsoleOut.IsTrue(ans_area2 = area2)
Finally
vrtx.Dispose()
End Try
End Sub
End Class |
See Also