基于AE通过指定中心点和半径画圆

在AE中通过指定中心点和半径画圆

本文转自:http://www.cnblogs.com/GISCafe/archive/2008/05/26/1207927.html

///   <summary>
///  通过指定的中心点、半径画圆
///   </summary>
///   <param name="pLayer"> 要画的圆所在的图层 </param>
///   <param name="pPoint"> 圆的中心点 </param>
///   <param name="circleRadius"> 半径圆的 </param>
///   <param name="pScreenDisplay"> 图形绘制对象 </param>
private   void  DrawCircleByCenterAndRadius(ILayer pLayer, IPoint pPoint,  double  circleRadius, IScreenDisplay pScreenDisplay)
{
    
if  (pLayer  !=   null )
    {
        ISegmentCollection pSegmentCollection 
=   null ;
        
if  (pLayer  is  IFeatureLayer)
        {
            IFeatureLayer pFeatureLayer 
=  pLayer  as  IFeatureLayer;
            IFeatureClass pFeatureClass 
=  pFeatureLayer.FeatureClass;
            
if  (pFeatureClass  !=   null )
            {
                
if  (pFeatureClass.ShapeType  ==  esriGeometryType.esriGeometryPolyline)
                {
                    pSegmentCollection 
=   new  PolylineClass();
                }
                
else   if  (pFeatureClass.ShapeType  ==  esriGeometryType.esriGeometryPolygon)
                {
                    pSegmentCollection 
=   new  PolygonClass();
                }
                
// 开始画圆
                pSegmentCollection.SetCircle(pPoint, circleRadius);
                IFeature pCircleFeature 
=  pFeatureClass.CreateFeature();
                pCircleFeature.Shape 
=  pSegmentCollection  as  IGeometry;
                pCircleFeature.Store();
                
// 局部刷新
                IInvalidArea pInvalidArea  =   new  InvalidAreaClass();
                pInvalidArea.Add(pSegmentCollection);
                pInvalidArea.Display 
=  pScreenDisplay;
                pInvalidArea.Invalidate((
short )esriScreenCache.esriAllScreenCaches);
            }
        }
    }
}

调用:
DrawCircleByCenterAndRadius(axMapControl1.get_Layer( 1 ), pPoint,  180 , axMapControl1.ActiveView.ScreenDisplay);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值