绘制文字

使用draw_text()和draw_rect_text()函数,我们可以绘制文字。

这些函数与python的内置函数print()类似, 你可以在一次函数调用中提供多个对象进行打印:

from easygraphics import *

def main():
    init_graph(400, 50)
    draw_text(50, 30, "There", "are", 5, "dogs", "under", "the", "tree", ".")
    pause()
    close_graph()

easy_run(main)

运行上述程序将获得如下的结果:

../_images/07_hello.png

如果你需要使用其他字符代替空格作为字符串之间的分隔符,可以使用”sep”参数:

from easygraphics import *

def main():
    init_graph(400, 50)
    draw_text(50, 30, "There", "are", 5, "dogs", "under", "the", "tree", ".", sep=",")
    pause()
    close_graph()

easy_run(main)

上面程序的结果如下:

../_images/07_custom_pos.png

文本绘制的位置

使用draw_text()是,前两个参数x,y指明了绘制文字时的“起始位置”,该位置是文字外廓的左下角。

因此下列代码将文字绘制在了绘图窗口的外面(在窗口中看不到):

from easygraphics import *

def main():
    init_graph(500, 200)
    draw_text(50, 0, "Hello world!")
    pause()
    close_graph()

easy_run(main)

在指定的矩形区域中绘制文字

使用draw_rect_text(),我们可以在一个指定的矩形范围内绘制文字。

注意函数的前两个参数(left,top)是矩形的左上角(和draw_text()不一样),第3、4个 参数(width, height)是矩形的宽和高。

你可以使用flags参数来控制文字的对齐方式。

如果指定的矩形不足以容纳整行文字,多余的文字会被截掉。

如果设定了标志“TextFlags.TEXT_WORD_WRAP”,并且文字太长一行放不下,会自动换行。

from easygraphics import *

def main():
    init_graph(400, 300)
    draw_rect(50, 50, 350, 250)  # draw a border to better see the result
    draw_rect_text(50, 50, 300, 200, "There are so many beautiful flowers in the garden!",
                   flags=TextFlags.TEXT_WORD_WRAP | TextFlags.ALIGN_CENTER)
    pause()
    close_graph()

easy_run(main)

以下是上面程序的运行结果。注意我们用draw_rect()在文字矩形框外绘制了边线,以便更好的展现flags参数的效果。

../_images/07_multilines.png