打卡训练绘制菱形

目录

一、题目

二、分析

三、完整代码展示


一、题目

绘制如图所示图形,中间是半径为120的圆,四周是边长为80的12个菱形。
背景为白色,中间圆为红色轮廓线,不填充
图中菱形的长对角延长线经过圆心
菱形为黑色轮廓线,黄色填充,其中锐角为60度
绘图过程中隐藏画笔,能清晰看到图形绘制过程

二、分析

向前120,左转30°;向前80,右转60°;向前80,右转120°;向前80,右转60°;向前80,右转60,画1/12圆弧。

turtle.penup()抬起画笔,不会画出痕迹,简写turtle.pu()

turtle.pendown()落下画笔,简写turtle.pd()

import turtle as t
t.pu()
#向前120,左转30°
t.fd(120)
t.pd();t.speed(9)#多条指令写一行,用分号隔开
t.color("black","yellow")
t.begin_fill()
t.lt(30)
#向前80,右转60°
t.fd(80)
t.rt(60)
#向前80,右转120°
t.fd(80)
t.rt(120)
#向前80,右转60°
t.fd(80)
t.rt(60)
#向前80
t.fd(80)
t.end_fill()
#右转60,画1/12圆弧
t.rt(60)
t.circle(120,360/12)

t.done()

运行结果

 接下来需要将这段代码改进一下执行12次

开始之前隐藏画笔turtle.hide()

圆轮廓为红色turtle.color("red")

每1/12开始画之前调整初始角度,循环12次

三、完整代码展示

import turtle as t

t.hideturtle()#全程隐藏画笔
t.pu();t.pensize(4)
#向前120,左转30°
t.fd(120)
t.pd();t.speed(9)#多条指令写一行,用分号隔开

for x in range(12):
    t.color("black","yellow")
    t.begin_fill()
    t.seth(x*30)#调整每次画之前角度0,30,60...
    t.lt(30)
    #向前80,右转60°
    t.fd(80)
    t.rt(60)
    #向前80,右转120°
    t.fd(80)
    t.rt(120)
    #向前80,右转60°
    t.fd(80)
    t.rt(60)
    #向前80
    t.fd(80)
    t.end_fill()
    #右转60,画1/12圆弧
    t.color("red")#圆轮廓为红色
    t.rt(60)
    t.circle(120,360/12)

t.done()

 运行结果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

219jclabc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值