ArcGISEngine绘制椭圆

原创 2013年12月06日 14:18:21

对于椭圆、椭圆弧的生成可以通过ArcGISEngine中的IEllipticArc来实现。下面我们来详细介绍IEllipticArc接口生成对象时用到的两个方法PutCoords与PutCoordsByAngle。

   这两个方法有些共同的特点,主要如下:

n所有角度参数的单位都是以弧度来计算

n长半轴与短半轴相互垂直平分

n旋转角度对最后椭圆生成的影响取决于参数EllipseStd的设置

uEllipseStd为False,角度是以坐标轴作为基准

uEllipseStd为True,角度是以长半轴作为基准;并且,起点、终点的坐标都是相对于中心的点的相对坐标

 

IEllipticArc接口生成对象时用到的两个方法PutCoords与PutCoordsByAngle除了上述的共同点外,又有着各自的特点。

PutCoords方法

public void PutCoords (

bool ellipseStd,

IPoint Center,

IPoint from,

IPoint to,

Double rotationAngle,

Double minorMajorRatio,

esriArcOrientation orientation)

        PutCoords方法需要知道确切的椭圆弧起点和终点,其参数的含义如下:

        ellipseStd:决定了旋转角度对最后椭圆生成的影响

uEllipseStd为False,角度是以坐标轴作为基准

uEllipseStd为True,角度是以长半轴作为基准;并且,起点、终点的坐标都是相对于中心的点的相对坐标

Center:椭圆弧的中心点

From:椭圆弧的起点

To:椭圆弧的终点

rotationAngle:旋转角度

minorMajorRatio:短轴与长轴的比例(<=1,等于1时绘制的是圆弧)

orientation:椭圆弧绘制方向(顺时针、逆时针、……)

 

下面代码绘制出来的椭圆弧如下图

IEllipticArc pEll = newEllipticArcClass();

pEll.PutCoords(false, pCenterPoint, sPoint, sPoint1, 0, 0.3, esriArcOrientation.esriArcClockwise);

 

PutCoordsByAngle方法

public void PutCoordsByAngle (

       bool ellipseStd,

       IPoint Center,

       double FromAngle,

       double CentralAngle,

       double rotationAngle,

       double semiMajor,

       double minorMajorRatio);

    putCoordsByAngle方法除了可以生成椭圆弧外,还可以生成椭圆。具体参数含义如下:

    ellipseStd:决定了旋转角度对最后椭圆生成的影响

u  EllipseStd为False,角度是以坐标轴作为基准

u  EllipseStd为True,角度是以长半轴作为基准;并且,起点、终点的坐标都是相对于中心的点的相对坐标

Center:椭圆弧中心点

FromAngle:起点角度

CentralAngle:椭圆弧圆心角

rotationAngle:旋转角度

semiMajor:长半轴长度

minorMajorRatio:短半轴与长半轴比例(<=1,等于1时绘制的是圆弧)

 

下面代码能够绘制椭圆

    IEllipticArc pEll = newEllipticArcClass();

   pEll.PutCoordsByAngle(false, pCenterPoint, 3, 2 * Math.PI, 0, 200, 0.3);

 

【OpenGL】中点圆、椭圆生成算法

OpenGL 中点圆、椭圆生成算法
  • u012866328
  • u012866328
  • 2016年09月21日 14:19
  • 4670

【C# + Argis Engine】地图上绘制圆形并且实时的显示半径源码

主要思路: 1.用到AxMapControl的三个事件 2.自写绘制方法,从中获得想要的数据 3.将数据跟随Move事件,标注的地图上 *文本标注的局部刷新,防止连带圆形一块刷新导致模...
  • Fuyouche
  • Fuyouche
  • 2013年02月27日 18:07
  • 2650

ArcGIS Engine 开发(二)线、圆、矩形、面、文本编辑功能

ArcGIS Engine 开发(二)线、圆、矩形、面、文本编辑功能
  • vector5210
  • vector5210
  • 2015年04月02日 22:53
  • 1577

ARCGIS engine 定长且批量绘制线段的中垂线

由于研究的需要,
  • dingzhi816
  • dingzhi816
  • 2014年08月01日 16:37
  • 1205

ArcEngine CSharp绘制图形经典代码

//画点 public void OnMouseDown(int Button, int Shift, int X, int Y) { IMxDocument mxDoc = m_App.D...
  • xiaochi088
  • xiaochi088
  • 2015年10月23日 09:04
  • 1416

C# 图形的绘制矩形椭圆

1.矩形框的绘制 绘制矩形框是用GDI+技术的DrawRectangle方法来实现的,它有3种语法,其语法格式如下: public void DrawRectangle (Pen ...
  • haoduo123456789001
  • haoduo123456789001
  • 2016年05月31日 14:15
  • 3126

HTML5 Canvas 绘制椭圆与椭圆弧的实现

由于HTML Canvas 2D Context标准中并没有直接绘制椭圆与椭圆弧的方法,所以浏览器普遍没有这个方法,不过,Chrome支持ellipse方法。IE11,Edge, Firefox, S...
  • cuixiping
  • cuixiping
  • 2016年06月01日 19:00
  • 4698

计算机图形学-绘制圆、椭圆

利用opengl绘制图形
  • lenovo20142018
  • lenovo20142018
  • 2016年10月21日 00:43
  • 901

arcgis engine开发中图层标注设置

做了一个图层标注显示并非图层要素对应字段值,而作一个翻译,网上也未找到比较详细的说明,因此费了较长时间,这里作一个记录; 下面对整个设置过程作一个详细的标注:  IFeatureLayer...
  • lin2491
  • lin2491
  • 2013年11月29日 18:20
  • 1973

ArcGIS Engine中的重点类库介绍

System类库 System类库是ArcGIS体系结构中最底层的类库。System类库包含给构成ArcGIS的其他类库提供服务的组件。System类库中定义了大量开发者可以实现的接口。Ao...
  • wywywywywywy123456
  • wywywywywywy123456
  • 2015年09月10日 23:39
  • 1497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGISEngine绘制椭圆
举报原因:
原因补充:

(最多只允许输入30个字)