怎样在python的turtle中输入文字_如何用Python的turtle库写出自己的名字?

本文介绍了如何利用Python的turtle库来在画布上输入和绘制文字,通过示例代码展示了如何绘制出指定的文本,包括调整字体大小和位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from turtle import *

#turtle.write("你的名字", move=False, align="left", font=("Arial", 8, "normal"))

import binascii

KEYS = [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01]

ht()

screensize()

Turtle().screen.delay(0) #输出无延时

Turtle().screen.colormode(255)#设置颜色为255格式

rect_list = [] * 16

for i in range(16):

rect_list.append([] * 16)

text = "你的名字"

def filled_rectangle(x:int,y:int,l:int, w:int, colorGray: int):#画出正方形

up()

goto(x,y)

pencolor((128-colorGray)//2,(128-colorGray)//2,(128-colorGray)//2)

fillcolor(((128-colorGray)//2,(128-colorGray)//2,(128-colorGray)//2))

down()

begin_fill()

for i in range(2):

right(90)

forward(l)

right(90)

forward(w)

end_fill()

def printBitMap(char:str,x:int,y:int,fontSize:int):

gb2312 = char.encode('gb2312')

hex_str = binascii.b2a_hex(gb2312)

result = str(hex_str, encoding='utf-8')

area = eval('0x' + result[:2]) - 0xA0

index = eval('0x' + result[2:]) - 0xA0

offset = (94 * (area-1) + (index-1)) * 32

font_rect = None

with open("HZK16", "rb") as f: #打开HZK16文件添加到Buffer

f.seek(offset)

font_rect = f.read(32)

rect_list = [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] #清空列表

for k in range(len(font_rect) // 2):

row_list = rect_list[k]

for j in range(2):

for i in range(8):

asc = font_rect[k * 2 + j]

flag = asc & KEYS[i]

row_list.append(flag)#将字体文件转为列表矩阵

for row in range(len(rect_list)):

for col in range(len(rect_list[row])):

if rect_list[row][col]:

filled_rectangle(x + col*fontSize,y -row*fontSize,fontSize,fontSize,rect_list[row][col])

def printText(text:str,x:int,y:int,fontSize:int):#输出若干个文字

width_screen = window_width()

height_screen = window_height()

for index,enum in enumerate(text):

printBitMap(enum,x-width_screen / 2 + fontSize * 16 * index ,-y + height_screen / 2,fontSize)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值