如何在turtle库中不使用write()绘制填充字母(如O)
绘制填充黄色字母O的正确方法
你的代码问题在于用了画粗圆环再填白内部的绕路方式,而且缺少end_fill()导致填充不生效。以下是两种符合需求的实现:
1. 实心黄色字母O(整个O为黄色)
直接用填充圆的方式,注意调整起始位置让圆心符合预期:
import turtle as t def O(): t.speed(1) t.penup() # circle()的起始点是圆的底部,所以设置y为-100,圆心就会在(-690, 0) t.setpos(-690, -100) t.pendown() t.color("yellow") t.begin_fill() t.circle(100) t.end_fill()
2. 空心黄色字母O(仅轮廓为黄色)
如果只需要黄色轮廓的O,直接用粗线条画圆即可,无需填充内部:
import turtle as t def O(): t.speed(1) t.penup() t.setpos(-690, 0) t.pendown() t.pensize(40) t.color("yellow") t.circle(100)
关键问题说明
- 你之前的代码里调用了
begin_fill()但没写t.end_fill(),导致填充不会生效 - 用“粗圆环+内部填白”的方式做空心O容易出现位置偏差,直接调整画笔粗细画圆更精准
t.circle(r)的绘制起点是圆的底部,所以如果需要圆心在某个坐标,要把起始点的y坐标减去半径
内容的提问来源于stack exchange,提问作者Oleg Ixe
相关产品推荐
相关产品推荐

