Message 1 of 18
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Three points of space
1、startpoint AcGePoint3d& pt1
2、endpoint AcGePoint3d& pt2
3、centerpoint AcGePoint3d& ptcen
static AcDbArc* CreatArc(const AcGePoint3d& pt1, const AcGePoint3d& pt2, const AcGePoint3d& ptcen, bool mode)
{
AcGePoint3d ptmid = AcGePoint3d((pt1.x + pt2.x) * 0.5, (pt1.y + pt2.y) * 0.5, (pt1.z + pt2.z) * 0.5);
AcGeVector3d vecmid = ptmid - ptcen;
vecmid.normalize();
ptmid = mode ? ptcen + vecmid * (ptcen.distanceTo(pt1)) : ptcen - vecmid * (ptcen.distanceTo(pt1));
AcGeCircArc3d geArc(pt1, ptmid, pt2);
AcDbArc* pArc = new AcDbArc(geArc.center(), geArc.normal(), geArc.radius(), geArc.startAng(), geArc.endAng());
return pArc;
}
Solved! Go to Solution.