ArcGis实现贝特兹曲线(NewBezierFeedBack)



 

privatevoid axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvente)

       {

           IPoint pPoint = newPointClass();

           pPoint.PutCoords(e.mapX, e.mapY);

           pActiveView=axMapControl1.ActiveView;

           if (pFeedBack == null)

           {

               pFeedBack = newNewBezierCurveFeedbackClass();

               pFeedBack.Display = pActiveView.ScreenDisplay;

               pFeedBack.Start(pPoint);

           }

           else

            {

               pFeedBack.AddPoint(pPoint);

           }

       }

 

       privatevoid axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvente)

       {

           if (pFeedBack != null)

           {

               IPoint pPoint = newPointClass();

               pPoint.PutCoords(e.mapX, e.mapY);

               pFeedBack.MoveTo(pPoint);

           }

       }

 

 

       privatevoid AddBezier(IGeometry pGeometry, IActiveView pActiveView)

       {

           IElementpElement;

           ILineElementpLineElement = newLineElementClass();

           ISimpleLineSymbolpSimpleLineSymbol = newSimpleLineSymbolClass();

 

           pElement = pLineElement asIElement;

           pElement.Geometry = pGeometry;

 

           pSimpleLineSymbol.Color = GetRGBColor(255, 215,0);

           pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid;

           pSimpleLineSymbol.Width = 2;

 

           pLineElement.Symbol = pSimpleLineSymbol;

 

           IGraphicsContainerpGraphicsContainer =axMapControl1.ActiveView asIGraphicsContainer;

           pGraphicsContainer.AddElement((IElement)pLineElement, 0);

           axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

 

       }

       privateIRgbColor GetRGBColor(int red, int green, int blue)

       {

           IRgbColorrGBColor = newRgbColorClass();

           rGBColor.Red= red;

           rGBColor.Green = green;

           rGBColor.Blue = blue;

           return rGBColor;

       }

 

       privatevoid axMapControl1_OnDoubleClick(object sender, IMapControlEvents2_OnDoubleClickEvente)

       {

           IGeometrypGeometry;

           pGeometry = pFeedBack.Stop();

           pActiveView = axMapControl1.ActiveView;

           AddBezier(pGeometry, pActiveView);

           pFeedBack = null;

       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值