• objectarx之两条曲线最短距离


    double CCommonFuntion::GetLineDistance(AcDbObjectId& Line1, AcDbObjectId& Line2)
    {
    AcGeLineSeg2d geLine1 = GetGeLineObj(Line1);
    AcGeLineSeg2d geLine2 = GetGeLineObj(Line2);

    //计算并输出两者之间的最短距离
    double distance = geLine1.distanceTo(geLine2);
    return distance;
    }

    //根据输入的实体ID获得相同参数的AcGeLineSeg2d对象
    AcGeLineSeg2d CCommonFuntion::GetGeLineObj(AcDbObjectId lineId)
    {
    AcGeLineSeg2d geLine; //AcGeLineSeg2d:在二维空间中表示一个有界的线段。
    AcDbLine *pLine = NULL;
    if (acdbOpenObject(pLine, lineId, AcDb::kForRead) == Acad::eOk)
    //指针pLine指向打开的对象lineId
    {
    geLine.set(ToPoint2d(pLine->startPoint()),
    ToPoint2d(pLine->endPoint()));
    pLine->close();
    }
    return geLine;
    }

    // 二维点和三维点之间的转换
    AcGePoint2d CCommonFuntion::ToPoint2d(const AcGePoint3d &point3d)
    {
    return AcGePoint2d(point3d.x, point3d.y);
    }

  • 相关阅读:
    读《见识》 | 当别人扇了你一巴掌
    Java集合类
    Java数据结构简述
    Java加密算法
    Java JDK与JRE
    Java String、StringBuilder、StringBuffer[笔记]
    Java同步(Synchronization)
    Java断言(Assertion)
    Java strictfp
    Java Native Interface(JNI)
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/11813661.html
Copyright © 2020-2023  润新知