一、代码演示
二、源代码
import turtle
# 设置画笔大小
turtle.pensize(4)
#调整画笔速度
turtle.speed(0)
# 画出同心圆并给同心圆填色
for i in range(10):
radius = 30 * (10 - i) # 圆的半径
turtle.penup() # 拿起画笔
turtle.goto(0, -radius) # 移动到圆的位置
turtle.pendown() # 放下画笔
#给同心圆填充两种颜色
if i % 2 == 0:
turtle.color('#DDE7FF')
else:
turtle.color('#FF9898')
turtle.begin_fill() #填充颜色
turtle.circle(radius) #画不同半径的圆
turtle.end_fill() #结束填充
# 添加数字
if i != 0 :
turtle.penup()
turtle.goto(0, radius) # 移动到圆的最顶端
turtle.write(str(i), align="center", font=("Arial", 12)) # 打印数字
turtle.pendown()
turtle.penup()
turtle.goto(0, -radius - 20) # 移动到圆的最低端
turtle.write(str(i), align="center", font=("Arial", 12))
turtle.pendown()
# 绘制靶心
turtle.penup()
turtle.goto(0, -1)
turtle.pendown()
turtle.color('red')
turtle.dot(5) # 绘制靶心
turtle.hideturtle() #隐藏画笔光标
turtle.done()#结束画图
三、代码讲解
该代码是一个同心圆飞镖靶,并在飞镖靶上的每个圆的顶部和底部标记了数字。
1.导入模块
import turtle
:导入turtle
模块,用于绘制图形
2.设置画笔大小和速度
turtle.pensize(4)
:设置画笔的宽度为 4。
turtle.speed(0)
:设置画笔的速度为最快,0 表示最快速度,绘图过程中不会显示绘制过程。如果想看绘制过程可以改变括号内的速度。
3. 绘制同心圆
for i in range(10):
radius = 30 * (10 - i) # 圆的半径
turtle.penup() # 拿起画笔
turtle.goto(0, -radius) # 移动到圆的位置
turtle.pendown() # 放下画笔
# 设置不同的颜色填充圆
if i % 2 == 0:
turtle.color('#DDE7FF')
else:
turtle.color('#FF9898')
turtle.begin_fill() # 开始填充颜色
turtle.circle(radius) # 画不同半径的圆
turtle.end_fill() # 结束填充
for i in range(10)
:循环 10 次,从大到小依次画出圆环。
radius = 30 * (10 - i)
:定义了一个变量radius,计算圆的半径,半径从大到小
turtle.penup()
:抬起画笔,移动时不会留下痕迹。
turtle.goto(0, -radius)
:移动到画圆的位置,位置是(0, -radius)
,即圆心在 y 轴上的负半径处。
turtle.pendown()
:放下画笔,开始绘制。
if i % 2 == 0
:如果i
为偶数,设置填充颜色为淡蓝色 (#DDE7FF
),否则为浅红色 (#FF9898
)。颜色也可以用(‘red’)的英文表示
turtle.begin_fill()
和turtle.end_fill()
:在绘制圆时开始填充颜色和结束填充颜色。
turtle.circle(radius)
:绘制一个半径为radius
的圆
4.添加数字
if i != 0 :
turtle.penup()
turtle.goto(0, radius) # 移动到圆的最顶端
turtle.write(str(i), align="center", font=("Arial", 12)) # 打印数字
turtle.pendown()
turtle.penup()
turtle.goto(0, -radius - 20) # 移动到圆的最低端
turtle.write(str(i), align="center", font=("Arial", 12))
turtle.pendown()
if i != 0
:跳过最内层的圆(第一个圆),因为第一个圆没有数字。
turtle.goto(0, radius)
:将画笔移动到圆的最顶端。
turtle.write(str(i), align="center", font=("Arial", 12))
:在圆顶端写上数字i,并规定字体为居中,字体名称为Arial,字号为12
。
turtle.goto(0, -radius - 20)
:将画笔移动到圆的最低端。再次写上数字
i
,这样每个圆的顶部和底部都有数字。
5.绘制靶心
# 绘制靶心
turtle.penup()
turtle.goto(0, -1)
turtle.pendown()
turtle.color('red')
turtle.dot(5) # 绘制靶心
turtle.goto(0, -1)
:将画笔移动到靶心的位置,略低于 y 轴 0。
turtle.color('red')
:设置画笔颜色为红色。
turtle.dot(5)
:绘制一个直径为 5 的红点,作为靶心
6.完成绘图
turtle.hideturtle()
turtle.done()
turtle.hideturtle()
:隐藏画笔光标,使绘图完成后看起来更整洁。
turtle.done()
:完成绘图,保持窗口打开直到手动关闭