Python:简易飞镖盘

一、代码演示

二、源代码

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():完成绘图,保持窗口打开直到手动关闭

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值