zoukankan      html  css  js  c++  java
  • ArcGISEngine绘制椭圆--转载

    转自: https://blog.csdn.net/sydbc/article/details/17161795

    对于椭圆、椭圆弧的生成可以通过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);

  • 相关阅读:
    mini2440 UBoot启动过程完全分析
    Linux Shell常用命令学习(1)
    S3C6410启动模式介绍
    漫画与新媒体的传播思考
    注册表修改启动项
    邮件主题是乱码的原因gbk 在utf8 显示问题
    移动 电话费 套餐
    java 异常的问题讨论
    领结的打法
    c# 字符之间的转换
  • 原文地址:https://www.cnblogs.com/niudieyi/p/8747831.html
Copyright © 2011-2022 走看看