FAQ
ArcObjects でジオメトリを回転させる方法

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

概要

ITransform2D :: Rotate メソッドを使用すると、指定の角度だけジオメトリを回転させることができます。 

Image

サンプル コード

このサンプル コードは、ポリラインを指定の角度だけ回転させます。

Rotate メソッドの第 1 引数は回転の中心点を、Rotate メソッドの第 2 引数は回転する角度をラジアンで指定します。

ここでは、ポリラインの始点を中心として ポリラインを 45 度 回転させるものです。

//最上位のレイヤーを取得
IMxDocument pMxDocument = ArcMap.Document;
IMap pMap = pMxDocument.FocusMap;
ILayer pLayer = pMap.get_Layer(0);

//Object ID が 2 のフィーチャを取得
IFeatureLayer pFeatureLayer = (IFeatureLayer)pLayer;
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
IFeature pFeature = pFeatureClass.GetFeature(2);

//フィーチャをポリラインとして取得
IGeometry pGeometry = pFeature.Shape;
IPolyline pLine = (IPolyline)pGeometry;

//45 度 回転させる
ITransform2D pTransform = (ITransform2D)pLine;
pTransform.Rotate(pLine.FromPoint, 45 * Math.PI / 180);

//変更点を保存
pFeature.Store();

//再描画
pMxDocument.ActiveView.Refresh();
'最上位のレイヤーを取得
Dim pMxDocument As IMxDocument = My.ArcMap.Document
Dim pMap As IMap = pMxDocument.FocusMap
Dim pLayer As ILayer = pMap.Layer(0)

'Object ID が 2 のフィーチャを取得
Dim pFeatureLayer As IFeatureLayer = CType(pLayer, IFeatureLayer)
Dim pFeatureClass As IFeatureClass = pFeatureLayer.FeatureClass
Dim pFeature As IFeature = pFeatureClass.GetFeature(2)

'フィーチャをポリラインとして取得
Dim pGeometry As IGeometry = pFeature.Shape
Dim pLine As IPolyline = CType(pGeometry, IPolyline)

'45 度 回転させる
Dim pTransform As ITransform2D = CType(pLine, ITransform2D)
pTransform.Rotate(pLine.FromPoint, 45 * Math.PI / 180)

'変更点を保存
pFeature.Store()

'再描画
pMxDocument.ActiveView.Refresh()

API リファレンス

Rotate メソッドは ITransform2D を実装するクラスで使用できます。実装されているクラスは以下の API リファレンスをご参照ください。

ITransform2D Interface

メタデータ

機能

種類

製品