绘制文字

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

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

from easygraphics import *
init_graph(500,200)
draw_text(50,100,"There","are",5,"dogs","under","the","tree",".")
pause()
close_graph()

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

../_images/07_hello.png

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

from easygraphics import *
init_graph(400,50)
draw_text(50,30,"There","are",5,"dogs","under","the","tree",".",sep=",")
pause()
close_graph()

上面程序的结果如下:

../_images/07_custom_pos.png

文本绘制的位置

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

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

from easygraphics import *
init_graph(500,200)
draw_text(50,0 ,"Hello world!")
pause()
close_graph()

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

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

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

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

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

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

from easygraphics import *
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()

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

../_images/07_multilines.png