本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢!
一、前言
本文介绍如何使用Python的海龟画图工具turtle,画花朵。
-
什么是Python?
Python是由荷兰人吉多·范罗苏姆于1990年代初设计的一门编程语言,应用领域非常广泛,尤其在数据分析、人工智能领域,已经成为最受欢迎的程序设计语言之一,比较适合新手学习。
这门编程语言之所以叫Python,意为大蟒蛇,是因为当时有一个电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)在热播,很受大家喜欢。
-
什么是海龟画图工具turtle?
turtle,中文意思为海龟,是Python语言中自带的一个用于绘制图像的函数库。turtle函数库为使用者提供一个或多个小乌龟作为画笔,使用者可通过turtle库提供的各种方法来控制小乌龟在一个平面直角坐标系中移动并绘制移动轨迹以画出想要的图案。
二、代码示例
首先,看一下使用Python画的花朵是什么样的?
之后,看一下对应的Python代码,如下:
import turtle as t
"""
花朵
@author 姑苏老陈
@date 2024-06-14
"""
# 画笔基础设置
t.setup(800, 800)
t.pensize(5)
# 画主干
t.penup()
t.goto(50, -450)
t.seth(140)
t.pendown()
t.circle(-300, 60)
t.fd(60)
# 画第一片叶子
t.seth(10)
t.fd(50)
t.right(40)
t.circle(120, 80)
t.left(100)
t.circle(120, 80)
t.seth(10)
t.fd(90)
t.penup()
t.fd(-140)
t.seth(80)
# 画第二片叶子
t.pendown()
t.fd(70)
t.seth(160)
t.fd(50)
t.right(40)
t.circle(120, 80)
t.left(100)
t.circle(120, 80)
t.seth(160)
t.fd(90)
t.penup()
t.fd(-140)
t.seth(80)
t.pendown()
# 画第一片花瓣
t.fd(100)
t.seth(-20)
t.circle(100, 100)
t.circle(-110, 70)
t.seth(179)
t.circle(223, 76)
# 画中间花骨朵
t.left(180)
t.circle(-223, 60)
t.seth(70)
t.circle(-213, 15) # 55
t.left(70) # 125
t.circle(200, 70)
t.seth(-80)
t.circle(-170, 40)
t.circle(124, 94)
t.penup()
t.right(180)
t.circle(-124, 94)
t.circle(170, 40)
t.pendown()
t.seth(-60)
t.circle(175, 70)
t.seth(235)
t.circle(300, 12)
t.right(180)
t.circle(-300, 12)
t.seth(125)
t.circle(150, 60)
t.seth(70)
t.fd(-20)
t.fd(20)
t.seth(-45)
t.circle(150, 40)
t.seth(66)
t.fd(-18.5)
t.fd(18.5)
t.seth(140)
t.circle(150, 27)
t.seth(60)
t.fd(-8)
t.penup()
t.left(20.8)
t.fd(-250.5)
# 画第二片花瓣
t.pendown()
t.seth(160)
t.circle(-140, 85)
t.circle(100, 70)
t.right(165)
t.circle(-200, 32)
t.seth(-105)
t.circle(-170, 14.5)
t.circle(123, 94)
# 写祝福语
t.penup()
t.goto(-200, 200)
t.pendown()
t.color("red")
t.write("节 日 快 乐 !", font=("黑体", 30, "italic")) # "italic"表示斜体
t.hideturtle()
t.mainloop()
三、知识点梳理
本次代码示例中涉及的Python知识点梳理如下:
turtle.pensize(*width*)
设置线条的粗细为 width 或返回该值。如未指定参数,则返回当前的 pensize;
比如:turtle.pensize(10),设置画笔线条的粗细为10个像素;
turtle.pendown()
画笔落下 -- 移动时将画线。
turtle.penup()
画笔抬起 -- 移动时不画线
turtle.circle(radius, extent=None, steps=None)
参数:
radius -- 一个数值
extent -- 一个数值 (或 None)
steps -- 一个整型数 (或 None)
绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent* 则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧, 否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。
圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边 形。
比如,turtle.circle(50, 360),画一个圆圈,半径为50个像素,角度为360度;
turtle.left(*args)
设置海龟画笔左转指定的度,比如,turtle.left(160)
turtle.right(*args)
设置海龟画笔右转指定的度,比如,turtle.right(180)
turtle.goto(x, y=None)
海龟移动到一个绝对坐标。如果 y 为 None,x 应为一个表示坐标的数值对。
比如,turtle.goto(-40, 80),海龟移动到X=-40,Y=80坐标值上;
turtle.setheading(to_angle)
参数:
to_angle -- 一个数值 (整型或浮点型)
设置海龟的朝向为 to_angle,坐标值正东方向为0度,正北方向为90度。
比如,turtle.setheading(150),设置海龟画笔的朝向,向150度西北方向移动。
四、总结
以上介绍了如何使用Python的海龟画图工具turtle画花朵。另外,对代码中涉及的Python编程知识点,做了简单的介绍。希望对大家有帮助,谢谢关注。
如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)