FAQ
ArcObjects でポリゴンを立ち上げてマルチパッチを作成する方法

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

概要

このトピックでは、ポリゴンを立ち上げてマルチパッチを作成する方法について述べます。マルチパッチとは、3次元の形状を保持できるジオメトリです。 

サンプル コード

IExtrude::Extrude メソッドを利用すると、指定したオフセット分だけポリゴンをZ方向に立ち上げてマルチパッチを生成することができます。立ち上げるポリゴン(入力ポリゴン)は、IZAware::ZAware、IZAware::ZSimple の両方が true でなければなりません。Extrude メソッドによって、ポリゴンはマルチパッチになります。

Image

public IMultiPatch ExtrudePolygon(IPolygon aPolygon)
{
    IExtrude extrude = new GeometryEnvironmentClass();
    IGeometry baseGeometry = aPolygon;
    IZAware pZAware = (IZAware)aPolygon;
    pZAware.ZAware = true;
    IZ zz = (IZ)aPolygon;
    zz.SetConstantZ(0);
    // 初期値として有効なZ値(ここでは0)を指定して、ZSimpleを true にします。
    // 有効でないZ値をもつ頂点がひとつでも存在すると、ZSimple は false になります。
    System.Diagnostics.Debug.Print(pZAware.ZSimple.ToString());
    IGeometry outGeometry = extrude.Extrude(100, baseGeometry);
    // 100 のオフセットで立ち上げます。 立ち上げた結果はマルチパッチになります。
    System.Windows.Forms.MessageBox.Show("Extrude \n Output Geometry Type : " + outGeometry.GeometryType);
    return (IMultiPatch)outGeometry;
}
Public Function ExtrudePolygon(aPolygon As IPolygon) As IMultiPatch
    Dim extrude As IExtrude = New GeometryEnvironmentClass()
    Dim baseGeometry As IGeometry = aPolygon
    Dim pZAware As IZAware = CType(aPolygon, IZAware)
    pZAware.ZAware = True
    Dim zz As IZ = CType(aPolygon, IZ)
    zz.SetConstantZ(0)
    '有効なZ値を指定して、ZSimpleを true にします。
     '有効でないZ値をもつ頂点がひとつでも存在すると、ZSimple は false になります。
     System.Diagnostics.Debug.Print(pZAware.ZSimple.ToString())
    Dim outGeometry As IGeometry = extrude.Extrude(90, baseGeometry)
    '100 のオフセットで立ち上げます。 立ち上げた結果はマルチパッチになります。
    System.Windows.Forms.MessageBox.Show("Extrude \n Output Geometry Type : " + outGeometry.GeometryType.ToString())
    Return CType(outGeometry, IMultiPatch)
End Function

メタデータ

機能

種類

製品