用python写一个五角星和爱心

676 阅读2分钟

“我正在参加「掘金·启航计划」”

五角星和爱心是比较好写出来的,适合没有学过python的新手。我用pycharm来给大家展示。

五角星绘制

这次用到的组件库turtle,是python自带的,不需要下载。

先展示一下写出来的效果:(应该是一个正在画五角星的动态效果,我现在还没太研究明白怎么弄成动图)

Snipaste_2022-09-29_08-22-18.png

源代码是这样的:


import turtle
turtle.pensize(10)
turtle.pencolor('red')
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.done()

代码讲解:

  • pensize()表示笔粗细的大小,括号里写线条粗细。
  • pencolor()表示线条的颜色,选取颜色时需要用‘’单引号引起来。
  • forward()画笔向所指方向前进指定的长度。
  • right()让笔向右的角度,括号里为要调整的角度。
  • done()用于暂停程序,停止画笔绘制,但不关闭窗口。这个必须写,不然看不到五角星。

程序整体是比较简单的,用import调用turtle ,确定笔的粗细和颜色进行绘制,画200个像素点,向右转144度,重复几次后,暂停画笔绘制且不关闭窗口。

绘制小爱心

依旧用到turtle组件库。

展示效果如下:

Snipaste_2022-09-29_18-18-33.png

源代码展示:


import turtle
def curvemove():
    for i in range(200):
        turtle.right(1)
        turtle.forward(1)
turtle.color('red')
turtle.penup()
turtle.goto(0,200)
turtle.write('画一个小爱心',align='center',font=('宋体',24))
turtle.goto(0,0)
turtle.pendown()
turtle.left(140)
turtle.forward(111.65)
curvemove()
turtle.left(120)
curvemove()
turtle.forward(111.65)
turtle.done()

代码解释:

  • 创建函数curvemove,循环200个像素,每画一个像素点就右移1度。
  • 选择画笔颜色,penup()把画笔停下,如果没有这步,直接执行下一句会有痕迹,影响画心。
  • goto(0.200)表示把笔放在(0.200)的位置。
  • write()这里可以理解为不是用来画画的,画笔所在位置是直接显示在窗口。以我写的为例,第一个单引号写我们想要的文字,align为可选参数,center表示把文字放置在窗口中间。font用于表示字体和字号。
  • goto把画笔放在(0,0)的位置,pendown()把画笔放下进行绘画。
  • left()将画笔放置在向左140度,forward(111.65)即让画笔从(0.0)点画到(111.65),curvemove()执行循环。向左再重复一遍。
  • 最后,done()暂停循环,停止画笔绘制,但不关闭窗口。

这两个执行起来都是动态的效果,比较好操作,新手比较友好,大家可以试一试。