很不幸的,今天被老大训导了,但也因为学到不少东西:
AcGePoint3d (AcGePoint2d )转换 ads_point 用:asDblArray函数。
ads_point 转换AcGePoint2d 用asPnt2d(const double &pnt) 或aspnt3d
acdbUcs2Wcs(ptAds, asDblArray(m_ptStart) ,false), 是表示在CAD中的转换成常用坐标系WCS 进行转换
使用AcDbPolyline类时,必须用到的函数有:
m_pEntity->setNormal(AcGeVector3d::kZAxis);
m_pEntity->setElevation(0.0);
转换成实体所在平面的点:
先定义平面:AcGePlane plane(AcGePoint3d::kOrigin + m_pEntity->normal() * m_pEntity->elevation(), m_pEntity->normal());
AcGePoint2d pt1(m_ptStart.convert2d(plane)), pt2(m_ptEnd.convert2d(plane));
AcGeVector2d vt1(pt2 - pt1);
vt1.normalize();
AcGeVector2d vt2(vt1);
vt2.rotateBy(PI / 2.0);
向量vt1 与 向量vt2 互相垂直
用向量求点更简单(示例):