最近点用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;

 

相关文章:

  • 2021-08-10
  • 2021-07-12
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2021-06-05
  • 2022-02-07
  • 2022-02-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-19
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
  • 2021-08-01
相关资源
相似解决方案