FAQ
ArcObjects で 3Dジオメトリの重心を求める方法

ナレッジ番号:5539 | 登録日:2023/07/27 | 更新日:2024/11/21

概要

このトピックでは、IArea::Centroid3D インターフェイスを利用して、3D オブジェクトの取得する方法について述べます。

サンプルコード

3Dオブジェクトの重心は、IArea::Centroid3D で取得できます。まず、2次元のフットプリントから重心の X、Y座標を計算し、その後で Z 値が計算されます。以下のサンプルコードで使われている GetMultiPatchGeometry 関数は、マルチパッチを返します。

public static void GetCentroid3D()
{
    IGeometry multiPatchGeometry = GetMultiPatchGeometry();
    IArea3D area3D = multiPatchGeometry as IArea3D;
    IPoint centroid3D = area3D.Centroid3D;
    System.Diagnostics.Debug.Print(centroid3D.X.ToString() + " " + centroid3D.Y.ToString() + " " + centroid3D.Z.ToString() + " ");
}
Public Sub GetCentroid3D()
    Dim multiPatchGeometry As IGeometry = GetMultiPatchGeometry()
    Dim area3D As IArea3D = CType(multiPatchGeometry, IArea3D)
    Dim centroid3D As IPoint = area3D.Centroid3D
    System.Diagnostics.Debug.Print(centroid3D.X.ToString() + " " + centroid3D.Y.ToString() + " " + centroid3D.Z.ToString() + " ")
End Sub

メタデータ

機能

種類

製品