馨馨 发表于 2016-4-21 17:32:10

求CAD下VBA代码

有一些坐标值,怎样通过比较求出X和Y坐标的最大最小值,谢谢,求大神们帮忙

馨馨 发表于 2016-4-21 20:49:54

有没有大神啊

gzxl 发表于 2016-4-21 21:34:13

可用快速排序

馨馨 发表于 2016-4-21 21:56:29

gzxl 发表于 2016-4-21 21:34 static/image/common/back.gif
可用快速排序

能具体点说吗,如果有代码最好了,谢谢

gzxl 发表于 2016-4-21 22:27:09

本帖最后由 gzxl 于 2016-4-21 22:31 编辑

馨馨 发表于 2016-4-21 21:56 static/image/common/back.gif
能具体点说吗,如果有代码最好了,谢谢
按X最小或最大排序,用快速排序法(经典高效)
然后取第一个元素或最后一个元素就是想要的
VBA不太懂了,百度吧

这个是arx的void SortPointsOnX(AcGePoint2dArray &points, int left, int right)
{
    AcGePoint2d firtPt, lastPt;
    int rtemp, ltemp;
    ltemp = left;
    rtemp = right;
    firtPt = points[(left + right) / 2]; // 分界值
    while (ltemp < rtemp)
    {
      while (points.x < firtPt.x)
      {
            ++ltemp;
      }
      while (points.x > firtPt.x)
      {
            --rtemp;
      }
      if (ltemp <= rtemp)
      {
            lastPt = points;
            points = points;
            points = lastPt;
            --rtemp;
            ++ltemp;
      }
    }
    if (ltemp == rtemp)
    {
      ltemp++;
    }
    if (left < rtemp)
    {
      SortPointsOnX(points, left, ltemp - 1); // 递归调用
    }
    if (ltemp < right)
    {
      SortPointsOnX(points, rtemp + 1, right);
    }
}

硕王 发表于 2017-10-15 10:40:32

gzxl 发表于 2016-4-21 21:34
可用快速排序

大哥您那有横断面自动提取的lsp源码吗 能提供一份吗   麻烦了有的话 请发到1141235788@qq.com
页: [1]
查看完整版本: 求CAD下VBA代码