Python基本图形绘制之“蟒蛇绘制”

Python蟒蛇绘制

通过代码分析对turtle库的使用以及turtle程序语法元素做简单的认识

import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40* 2/3)
turtle.done()
  • import
    扩充Python程序功能的方式,使用import保留字完成,引入了一个绘图库名叫turtle,采用< a >.< b >()编码风格,import<库名>,<库名>.<函数名>(<函数参数>)。

  • turtle.setup()
    调整绘图窗体在电脑屏幕中的布局,形如格式 turtle.setup(绘图窗体宽度,绘图窗体高度,窗体左上顶点x坐标,窗体左上顶点Y坐标)

第一行我们使用 import turtle 引入了海龟绘图体系,第二行使用setup函数来设定了一个窗体,窗体的大小是宽度为650像素、高为350像素,它的位置大的左上角的坐标是(200,200)说明当前窗体与当前屏幕的位置是在距离当前屏幕左上角(200,200)的像素的地方

  • turtle.penup() / turtle.pendown()
    penup与pendown同为画笔控制函数,penup意为“抬起画笔”pendown意为“落下画笔”,有起必有落。

  • turtle.fd()
    fd为forward的简写,意为向前,所以fd(d)为运动控制函数,控制海龟向前行进。与 turtle.goto(x,y)、turtle.bk(d)、turtle.circle(r,angle) 同属于turtle空间坐标体系

第三行代码我们将画笔抬起,第四行 fd(-250)让海龟倒退向后行进250个像素,由于当前画笔抬起,所以画布上不留下任何痕迹,之后pendown将画笔落下,这几行代码相当于我们将海龟的位置由绘图中心的原点变成了在图像中左侧的某一位置上。

  • pensize()/ pencolor()
    size意为大小也就是海龟画笔的宽度,color意为颜色即海龟画笔的颜色,函数参数为颜色英文字符串形式。两者皆为画笔控制函数

  • turtle.seth()
    seth(angle)只改变当前海龟的行进角度,并不行进,angle为绝对度数。与turtle.left()和turtle.right()同为turtle角度坐标体系。不过后两者的函数参数均为海龟角度

第六行代码我们设置画笔的宽度为25像素,即“海龟的腰围”,第七行设置画笔的颜色为紫色。第八行改变海龟的方向,改为绝对的-40°方向,准备启动绘制python蟒蛇。

  • for <变量> in range (<参数>)
    此形式为循环语句,按照一定次数循环执行一组语句。例如 :

    for i in range (5):
    print(i)

    这个循环语句的输出结果为
    0
    1
    2
    3
    4

接下来三行代码是一个循环,循环体中用了circle函数让海龟走曲线,它使用40像素为半径绘制80度的弧度,绘了80度后我们又以反向40为半径绘制80度,形成了python蟒蛇的一个关节,经过四次循环我们绘制了蟒蛇的四个身体部分。

进一步我们让小海龟按照40像素的半径,40度的方式绘制少半个弧形,进而向前行进40像素,构成了python蟒蛇的脖子部分,最后我们采用半圆形和继续向前进的一个直线绘制整个python蟒蛇整个头部。代码最后我们用到了

  • turtle.done()
    这个函数有一个作用,如果我们是一个文件式描写方法,写了turtle.done作为整个turtle绘制的最后一部分,程序运行之后,程序不会退出,需要手动关闭窗体退出,如果我们希望运行后自动退出,去掉这行代码即可。
import更多用法及比较
  1. import<库名>
    <库名>.<函数名>(<函数参数>)
    例如:
    import turtle
    turtle.penup()
    这种方法不会出现函数重名问题,即不会出现库中已有函数名可能会与变量名重复导致代码运行错误,但由于每个函数都要写库名,程序代码会过于繁琐。

  2. form<库名>import*
    <函数名>(<函数参数>)
    例如:
    form turtle import*
    penup()
    这种方法去掉了库中函数引用的时候需要带的库名,解决了代码繁琐,但是在引用多个库的情况下可能会存在函数重名问题.

  3. import<库名>as<库别名>
    <库别名>.<函数名>(<函数参数>)
    例如:
    import turtle as t
    t.penup()
    这种方法顾名思义将繁琐难写的库名用其他字符代替,大大简洁了代码书写,又可以避免函数重名问题的发生。

发布了20 篇原创文章 · 获赞 38 · 访问量 919

猜你喜欢

转载自blog.csdn.net/weixin_45506775/article/details/104221496