icedream 发表于 2008-4-8 12:37:00

[求助]在04中,怎样获取文字的包围盒?

在04中,怎样获取文字的包围盒?<br/>一个文字字符串可以得到AcDbText,可以取得文字的插入点,还有文字的高<br/>但文字的宽,和文字之间的间距不知道怎么求,<br/>如果能求得那就能得到一个包围盒了。<br/>请大家帮帮忙!<br/>

icedream 发表于 2008-4-8 14:01:00

自行解决

void PrintAcDbTextBox(const AcDbText *pText)
{
    AcDbObjectId styleId = pText->textStyle();
    AcGiTextStyle giTextStyle;
    fromAcDbTextStyle(giTextStyle, styleId);
    AcGePoint2d extMinPt, extMaxPt;
    giTextStyle.extentsBox(pText->textString(), false, -1, false, extMinPt, extMaxPt);
    acutPrintf(_T("extMinPt = (%f, %f)\n"), extMinPt.x, extMinPt.y);
    acutPrintf(_T("extMaxPt = (%f, %f)\n"), extMaxPt.x, extMaxPt.y);
}

extMinPt和extMaxPt就可以组成一个包围盒。

zhang007 发表于 2008-4-8 14:44:00

那文字要是一个斜的呢?这样未必准确

liub1979 发表于 2008-4-8 19:46:00

<p>acedTextBox</p><p>用这个不好吗?</p>

zhangyusheng 发表于 2008-4-24 10:31:00

把文字复制到AcDbText再计算包围盒
页: [1]
查看完整版本: [求助]在04中,怎样获取文字的包围盒?