作为标题,当我执行以下代码时
import turtle
turtle.write("some text")
我想知道海龟图形画布上字符串some text
的整个尺寸(包括高度和宽度)。
我怎么能这样做?
答案 0 :(得分:2)
字体大小只会告诉您 一半 您需要知道的内容,即高度:
字体的大小通常被认为是距离顶部的距离 最低字符底部的最高字符。
但我们可以通过将move=
的{{1}}选项设置为turtle.write()
来获得宽度。这是一个例子,我想在我刚刚绘制的文字周围画一个紧凑的框:
True
现在,首先绘制框,填充框,然后将文本绘制到框中是一个更难的问题。使用的技巧是在屏幕外绘制文本:
from turtle import Turtle, Screen
TEXT = "Penny for your thoughts" # arbitrary text
POSITION = (150, 150) # arbitrary position
FONT_SIZE = 36 # arbitrary font size
FONT = ('Arial', FONT_SIZE, 'normal')
X, Y = 0, 1
def box(turtle, lower_left, upper_right):
""" Draw a box but clean up after ourselves """
position = turtle.position()
isdown = turtle.isdown()
if isdown:
turtle.penup()
turtle.goto(lower_left)
turtle.pendown()
turtle.goto(upper_right[X], lower_left[Y])
turtle.goto(upper_right)
turtle.goto(lower_left[X], upper_right[Y])
turtle.goto(lower_left)
turtle.penup()
turtle.setposition(position)
if isdown:
turtle.pendown()
screen = Screen()
marker = Turtle(visible=False)
marker.penup()
marker.goto(POSITION)
start = marker.position()
marker.write(TEXT, align='center', move=True, font=FONT)
end = marker.position()
# Since it's centered, the end[X] - start[X] represents 1/2 the width
box(marker, (2 * start[X] - end[X], start[Y]), (end[X], start[Y] + FONT_SIZE))
screen.exitonclick()
另一种方法是首先在背景颜色中绘制文本,测量,绘制和填充框,最后以不同的颜色重绘文本。
答案 1 :(得分:-1)
turtle.write
的默认字体是'Arial',字体大小为8px,如文档https://docs.python.org/3/library/turtle.html#turtle.write中所述。
文本的高度和宽度取决于font
参数。
答案 2 :(得分:-1)
虽然布兰登几乎给出了答案,但让我举个例子:
>>>>import turtle
>>>>turtle.write('hey hello this is DSP',font=('consolas',8,'bold'))
这可以完成你的工作,Consolas是字体类型,8是字体的大小,粗体是字体类型。除了大胆之外,您还可以使用斜体或正常。