jianghongz 发表于 3 天前

turtle转着圈写字

import turtle
text=turtle.textinput("内容",'请输入要打印的文字:')

turtle.penup()
turtle.goto(0,100)
x=len(text)
for i in text:
    turtle.write(i,font=('consolas',30))
    turtle.rt(360/x)
    turtle.fd(100)
turtle.hideturtle()
turtle.done()

FishC 发表于 3 天前

以下是使用turtle实现文字圆形排列的改进代码,解决了字符方向问题并优化了布局:

import turtle

text = turtle.textinput("内容", '请输入要打印的文字:')
if not text:# 处理空输入
    text = "FishC"
   
t = turtle.Turtle()
t.penup()
t.goto(0, -100)# 起点调整到圆心下方
t.setheading(90)# 初始朝上

angle = 360 / len(text)# 计算旋转角度

for char in text:
    t.forward(100)# 移动到圆周位置
    # 临时保存状态并重置方向
    temp_pos = t.position()
    temp_head = t.heading()
    t.setheading(0)# 强制水平方向书写
    t.write(char, align='center', font=('consolas', 30))
    t.goto(temp_pos)# 返回原位置
    t.setheading(temp_head)# 恢复原方向
   
    t.backward(100)# 退回圆心
    t.right(angle)   # 旋转角度
   
t.hideturtle()
turtle.done()

**关键改进说明:**
1. 方向重置:每次写字前临时将方向设为水平(`setheading(0)`),写完后恢复原方向
2. 位置校正:写字前记录当前位置,写完后返回原位置
3. 移动逻辑:
   - 从圆心向前移动半径距离(形成圆周点)
   - 写字后退回圆心
   - 在圆心进行角度旋转
4. 对齐优化:使用`align='center'`确保文字居中显示

**效果特点:**
- 文字始终保持水平方向
- 文字均匀分布在圆形轨迹上
- 支持任意长度文本(包括单字)
- 自动处理空输入(默认显示"FishC")

运行后输入文字即可看到文字沿圆形排列的效果,每个字符都会自动保持水平方向。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: turtle转着圈写字