zoukankan      html  css  js  c++  java
  • 获取Polyline两点间的线段

    /// <summary>
            /// 创建区间线段
            /// </summary>
            /// <param name="pLine">输入的线图形</param>
            /// <param name="p1">插入的其中一个点</param>
            /// <param name="p2">插入的一种一个点</param>
            /// <returns>这两点间的线段</returns>
            /// 创建人 : 懒羊羊
            private IPolyline BuildLine(IPolyline pLine, IPoint p1, IPoint p2)
            {
                bool isSplit;
                int splitIndex, segIndex;
                //插入第一点,segIndex记录插入点的相对线的节点位置
                pLine.SplitAtPoint(p1, true, false, out isSplit, out splitIndex, out segIndex);
                int fIndex = segIndex;
                //插入第二点
                pLine.SplitAtPoint(p2, true, false, out isSplit, out splitIndex, out segIndex);
                int sIndex = segIndex;
                if (sIndex <= fIndex)                       //红色为增加判断部分
                    fIndex++;
                //比较一下插入第一点和第二点的节点次序
                if (fIndex > sIndex)
                {
                    int temp = fIndex;
                    fIndex = sIndex;
                    sIndex = temp;
                }
                IPointCollection pPointCol = new PolylineClass();
                object o = Type.Missing;
                //利用两点区间,获取线上区间所在的点,并将其转换为线
                IPointCollection LineCol = pLine as IPointCollection;
                for (int i = fIndex; i <= sIndex; i++)
                {
                    pPointCol.AddPoint(LineCol.get_Point(i), ref o, ref o);
                }
                return pPointCol as IPolyline;
            }

    这样,无论两点的次序是顺线节点次序还是逆线节点次序,都不会出错了。
  • 相关阅读:
    Docker-(三).Dockerfile
    Docker-(二).使用操作
    Docker-(一).安装
    Mac-brew install mysql
    Mac-brew
    Selenium HTMLTestRunner 执行测试成功但无法生成报告
    12.Python爬虫利器三之Xpath语法与lxml库的用法
    11.Python-第三方库requests详解(三)
    10.Python-第三方库requests详解(二)
    9.Python爬虫利器一之Requests库的用法(一)
  • 原文地址:https://www.cnblogs.com/gisoracle/p/1542437.html
Copyright © 2011-2022 走看看