如何处理标注打架
1.先声明一个已有点集m_vctHasTopPtDim,用于保存所有点
2.定义一个函数,传入当前点,与已有点集比较
void CDimHelper::AdjustTopDim(McGePoint2d &ptCur) { //遍历已经标注的点 for(int i = 0; i<m_vctHasTopPtDim.size(); i++) { //找到打架的点(当前点的x坐标之差小于半径) if (DblLT(abs(ptCur.x-m_vctHasTopPtDim.at(i).x), 3*FETCHRADIUS*m_pBlock->GetUnitScaleFactor())) { //使当前点左移5个半径的距离 ptCur.GetOffset(-5*FETCHRADIUS*m_pBlock->GetUnitScaleFactor(), 0); } } m_vctHasTopPtDim.push_back(ptCur); }
3.在需要比较点的位置上调用函数