Python代码学习(Ⅰ)——采用海龟画图法进行五角星绘制

何为海龟画图法?

海龟画图法(Turtle Graphics)是一种用于教授编程概念和图形设计的教育工具和编程语言。它的核心思想是通过控制一个虚拟的"海龟"(turtle)来绘制图形。这个海龟可以前进、后退、左转、右转,并在绘图板上留下痕迹,从而创建各种复杂的图形和图案。

海龟画图法通常用于教授编程的初学者,因为它具有直观性和可视性,使学习编程更加有趣和容易理解。通过编写简单的指令,我们可以控制海龟的移动,从而创建各种图形,如线条、图案、形状和甚至是复杂的艺术作品。

在海龟画图法中,通常会有一些基本的指令,例如:

1. 前进(Forward):使海龟向前移动一定的距离。
2. 后退(Backward):使海龟向后移动一定的距离。
3. 左转(Turn Left):使海龟左转一定的角度。
4. 右转(Turn Right):使海龟右转一定的角度。
5. 抬笔(Pen Up):使海龟抬起画笔,停止绘制。
6. 放笔(Pen Down):使海龟放下画笔,开始绘制。

我们可以使用这些指令的组合来创建各种各样的图形,从简单的几何形状到复杂的图案都可以通过编写海龟画图法的程序来实现。

海龟画图法最早是由Seymour Papert于20世纪60年代开发的,作为Logo编程语言的一部分。它在教育领域得到广泛应用,用于帮助我们理解编程的基本概念,如循环、条件语句和算法设计。

用python代码绘制五角星

五角星的绘制(包含颜色填充)

以直线形式绘制,按照直线拐角进行绘制

#FiveStar.py(五角星的绘制)
#导入库
import turtle #导入海龟画图库
turtle.pensize(5)  #设置画笔大小为5px
turtle.pencolor('pink')
turtle.write('202209327张培森')
turtle.fillcolor("blue")
turtle.begin_fill()
turtle.fd(200) #海龟画笔向前行进200px
turtle.right(144)
turtle.fd(200)
turtle.right(144)
turtle.fd(200) #海龟画笔向前行进200px
turtle.right(144)
turtle.fd(200)
turtle.right(144)
turtle.fd(200)


turtle.end_fill()

运行结果如下图所示:

上述代码过于复杂我们可以采取for循环进行简化,如下所示:

#FiveStar.py(五角星的绘制)
#导入库
import turtle #导入海龟画图库
turtle.pensize(5) #设置画笔大小为5px
turtle.pencolor('pink')
turtle.write('202209327张培森')
turtle.fillcolor("blue")
turtle.begin_fill()
for _ in range(5):
    turtle.forward(200) # 边长为200
    turtle.right(144) # 五角星的内角为36度,外角为144度

turtle.end_fill()

采用描边的绘制路径以海龟画图法为基础绘制五角星并填充颜色:

#FiveStar.py(五角星的绘制)
#导入库
import turtle   #导入海龟画图库
turtle.pensize(5)   #设置画笔大小为5px
turtle.pencolor('pink')
turtle.write('202209327张培森')
turtle.fillcolor("pink")
turtle.begin_fill()
turtle.fd(100)
turtle.right(108)
turtle.fd(100)
turtle.right(324)
turtle.fd(100)
turtle.right(108)
turtle.fd(100)
turtle.right(324)
turtle.fd(100)
turtle.right(108)
turtle.fd(100)
turtle.right(324)
turtle.fd(100)
turtle.right(108)
turtle.fd(100)
turtle.right(324)
turtle.fd(100)
turtle.right(108)
turtle.fd(100)
turtle.right(324)

turtle.end_fill()

运行结果如图所示:

对上述代码进行for循环简化后可得:

import turtle
# 设置画笔大小和颜色
turtle.pensize(5)
turtle.pencolor('pink')
# 填充颜色
turtle.write('202209327张培森')
turtle.fillcolor("pink")
turtle.begin_fill()
# 循环绘制五角星的边
for _ in range(5):
    turtle.forward(100)
    turtle.right(108)
for _ in range(5):
    turtle.forward(100)
    turtle.right(324)
# 结束填充
turtle.end_fill()
# 关闭窗口时退出
turtle.done()

运行结果为:

代码表示为:

import turtle
turtle.pensize(5)
turtle.pencolor('pink')
turtle.fillcolor("blue")
turtle.begin_fill()
# 循环绘制五角星的边
for _ in range(5):
    turtle.forward(50)
    turtle.left(72)
    turtle.forward(50)
    turtle.right(144)
turtle.end_fill()
# 关闭窗口时退出

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值