ObjectARX自定义实体的最近点和垂点捕捉算法

mac2022-06-30  26

 最近点用pickPoint来计算,垂点用lastPoint计算.

一般AcDbCurve类可以用AcGe类的 getClosestPointTo 来实现计算需要的点值.

下面是代码示例: 

case AcDb::kOsModeNear:

       {

           AcGeLine3d line3d(m_ptA,m_ptC);         

           AcGePointOnCurve3d tmpPt;

           line3d.getClosestPointTo(pickPoint,tmpPt);

           AcGePoint3d pt=tmpPt.point();

          

           snapPoints.append(AcGePoint3d(pt));

           line3d.set(m_ptB,m_ptD);

           line3d.getClosestPointTo(pickPoint,tmpPt);

           pt=tmpPt.point();

           snapPoints.append(AcGePoint3d(pt));

       }

       break;

    case AcDb::kOsModePerp:

       {

           AcGeLine3d line3d(m_ptA,m_ptC);         

           AcGePointOnCurve3d tmpPt;

           line3d.getClosestPointTo(lastPoint,tmpPt);

           AcGePoint3d pt=tmpPt.point();

 

           snapPoints.append(AcGePoint3d(pt));

           line3d.set(m_ptB,m_ptD);

           line3d.getClosestPointTo(lastPoint,tmpPt);

           pt=tmpPt.point();

           snapPoints.append(AcGePoint3d(pt));

       }

       break;

 

转载于:https://www.cnblogs.com/edata/p/6817621.html

相关资源:ObjectARX自定义实体
最新回复(0)