2.3.3 文字属性

文字属性

  • 颜色SetTextColor()SetTextColorAlpha(,)

  • 大小SetTextSize()SetTextSizePixels()

  • 字体SetTextFont()

  • 角度SetTextAngle(305)

  • 对齐SetTextAlign(12)

文字种类

使用SetTextFont设置字体。 参数为字体代码,它结合了字体和精度:font = 10 * fontID + precision。如:root[] la->SetTextFont(62)

字体 ID 必须介于 1 和 14 之间。精度可以是:

0:快速字体(大小步长)

1:可扩展且可旋转的硬件字体

2:可扩展且可旋转的硬件字体。

当使用精度0时,为仅使用原始的非缩放系统字体。 这些字体速度快且质量好,但只支持4-37像素大小的文字,而且不能旋转。 1 和 2 字体具有不同的行为,具体取决于是否使用 True Type 字体 (TTF)。 如果使用 TTF,您总是会获得质量非常好的可缩放和可旋转字体。 然而,TTF速度很慢。 对于精度1,文本对某些特殊字符使用旧约定来绘制下标和上标或希腊文本。精度为2 时,“PostScript”特殊字符将按此绘制。

chevron-rightE.g. 包含ID展示不同字体效果hashtag
{
    TCanvas *textc = new TCanvas("textc","Example of text",1);
    char cid[8]; // 使用固定大小的数组来代替动态分配内存
    TLatex *lid;
    TLatex *l;
    for (int i=1; i<15; i++) {
        snprintf(cid, 8, "ID %d :", i); // 使用snprintf代替sprintf
        lid = new TLatex(0.1, 1-(double)i/15, cid);
        lid->SetTextFont(62);
        lid->Draw();

        l = new TLatex(.2, 1-(double)i/15, "The quick brown fox is not here anymore");
        l->SetTextFont(i*10+2);
        l->Draw();
    }
}

其他字符,比如日语、俄语、汉字:

chevron-rightE.g.hashtag

公式语法

CERN root提供了支持LaTeX语法的文本绘制功能。你可以使用TLatex类来在绘图中输入LaTeX表达式(Latex语法中的\需要替换为#)。以下是一个示例代码:

在上面的代码中,TLatex对象被创建并设置了位置和文本内容。

使用SetTextAlign()函数设置文本的对齐方式;

使用SetTextSize()函数设置文本的大小;

使用SetTextColor()函数来设置文本的颜色。

然后,使用Draw()函数将LaTeX表达式绘制出来。

chevron-righte.g. 只含公式的文字绘制hashtag


参考

最后更新于