単純多角形の符号付面積(浮動小数点型)
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_d(
DPNT_T_PTR vrtx,
int num,
ref double area
) |
Visual Basic |
---|
Public Shared Function fnFIE_cg_polygon_area_calc_d (
vrtx As DPNT_T_PTR,
num As Integer,
ByRef area As Double
) As Integer |
Parameters
- vrtx
- Type: fvalgcli..::..DPNT_T_PTR
多角形の頂点
- num
- Type: System..::..Int32
頂点数( vrtx の要素数)
- area
- Type: System..::..Double%
単純多角形の符号付き面積を返す
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_d()
{
int status = (int)f_err.F_ERR_NONE;
DPNT_T_PTR vrtx = DPNT_T_PTR.Zero;
int num;
double area = new double();
const double horz = 11;
const double vert = 22;
try
{
num = 3;
vrtx = DPNT_T_PTR.alloc(num);
vrtx[0] = DPNT_T.init(33, 44);
vrtx[1] = DPNT_T.init(vrtx[0].x + horz, vrtx[0].y);
vrtx[2] = DPNT_T.init(vrtx[1].x, vrtx[1].y + vert);
double ans_area = -horz * vert / 2;
status = api.fnFIE_cg_polygon_area_calc_d(vrtx, num, ref area);
Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
ConsoleOut.WriteFunctionName(":\t");
Console.Write("area = {0} ...", area);
ConsoleOut.IsTrue(ans_area == area);
}
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_d()
Dim status As Integer = CInt(f_err.F_ERR_NONE)
Dim vrtx As DPNT_T_PTR = DPNT_T_PTR.Zero
Dim num As Integer
Dim area As New Double()
Const horz As Double = 11
Const vert As Double = 22
Try
num = 3
vrtx = DPNT_T_PTR.alloc(num)
vrtx(0) = DPNT_T.init(33, 44)
vrtx(1) = DPNT_T.init(vrtx(0).x + horz, vrtx(0).y)
vrtx(2) = DPNT_T.init(vrtx(1).x, vrtx(1).y + vert)
Dim ans_area As Double = -horz * vert / 2
status = api.fnFIE_cg_polygon_area_calc_d(vrtx, num, area)
Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
ConsoleOut.WriteFunctionName(":" & vbTab)
Console.Write("area = {0} ...", area)
ConsoleOut.IsTrue(ans_area = area)
Finally
vrtx.Dispose()
End Try
End Sub
End Class |
See Also