Python编程学习(第二周)——基本图形绘制

深入理解Python语言:

Python语言作为一种通用语言,它可以应用在各个领域,几乎不受限制。

Python语言具有其特点和优势

       其一是强制可读性,从底层语法的方面建立了它的可读性;

       其二是有较少的底层语法元素,编写程序时更加人性化;

       其三是有多种编程方式;

       其四是支持中文字符的处理;

总而言之,简洁就是python最大的优势!

此外,生态高产 也是其另一巨大优势,它有大量的第三方库,有开放共享的平台,可以跨系统操作。


下面进入正题,关于Python的图形绘制问题。

首先,与c语言不同,Python在绘制基本图形方面具有更加便捷、强大的能力,相信在类似c语言的学习中很少提及图形的绘制,但是在Python中,你就可以好好感受编程图形绘制的魅力。

本周的主题就是利用Python解决蟒蛇绘制问题,并举一反三,掌握基本的图形绘制能力。

一、问题分析

       问题:

 如何用程序绘制一条蟒蛇?

       思考:

  1. 计算机如何绘图
  2. 从哪里开始进行绘图,即如何绘制蟒蛇

二、代码

       同样,先给出代码:

543289f9e6704b3abe5c1c8eaa3d0031.png

        运行结果:

          我们可以看到一个窗口,并且有一条可以动的蟒蛇。

d51fa0a234c74e13a346bb3c42b01046.png

        代码分析:

  1.  首先可以看到代码最前面的import turtle,并且可以发现在之后的代码中都频繁出现了turtle这个词,可以推测这句代码就是程序的关键。

import:

这里我们来详细讲解一下import保留字的功能,首先它是一个引入当前代码所没有的功能的保留字,类似于c语言中的include<>,通过import来引入其它的库函数,可以实现许多额外的功能,而这里的库函数turtle正是绘图库的名字,翻译过来就是海龟库,正是它帮助实现了绘图功能。

          2.turtle

         正如前面所说的,turtle是一种绘图库,下面            讲重点介绍这个库的使用方法。

  • 基本介绍

       turtle绘图体系诞生于1969年,主要用于程序设计入门。

       它是Python语言的标准库之一。是入门级的图形绘制函数库。

补充:标准库,是Python计算生态之一,其中还有第三方库。标准库是随解释器直接安装到操作系统中的功能模块。第三方库是需要经过安装才能使用的模块。

  • turtle绘图窗体布局

       c9483f7fd10e418eb344b56611cf2984.png

 

       运行时产生的窗体,也就是绘图的画布,如图所示,我们通过坐标的方式来确定某一个具体位置。

     我们使用turtle.setup(width, height, startx, starty)来设置窗体的大小和位置。

       setup()不是必须的,如果不去写,就会默认产生一个处于屏幕正中心的窗口。

  • turtle空间坐标体系

       7f71ef50c8d34287a3ba4c9d16f4e3b6.png

        在turtle窗体内部,形成了一个空间坐标体系,如图所示。包含绝对坐标海龟坐标两种。

       (1)绝对坐标:    正中心坐标(0,0),右方向x轴,向上为y轴。这样就能用坐标来表示窗体上的任意一个位置。

goto函数:

       在确定了坐标后,就可以利用goto函数实现绘制的基本功能。

74668fe96a8e47ff99444f15e2d80953.png

        绘制都是从坐标原点开始,即(0,0)开始。goto(100,100)就是去找对应的坐标点,以此类推,这样就能在屏幕中绘制图形。

     (2)海龟坐标:    

73d9765e404c4450ad397234abf1b92a.png

         如图,海龟坐标就是从平面上海龟的视角出发,进行前进,后退,向左侧(右侧)运动,这些都可以使用函数来实现。

        如图,fd()就是向前,bk()就是后退,circle(r,)就是绕海龟左侧一点为圆心做的一段曲线运动。

  • turtle角度坐标体系

       使用turtle.seth(angle)函数来改变角度(绝对)。其中seth()改变方向但不行进,angle为绝对度数。

       同理,我们可以通过turtle.left(angle)来相对海龟当前朝向改变行进方向。


RGB色彩模式:

       由三种颜色构成的万物色。

       由红蓝绿三个通道的颜色组合,每色取值范围0-255整数,0-1小数。

af8d338a9bb24a04b4d481425fa7e9f5.png

 2d366353e75d43238f4fefd73a4d76a7.png

        turtle默认使用小数值来表示颜色。

820f01f48d4a4cd4a027e0cff09fcf5f.png


          3.turtle程序语法分析

       (1)库引用:import保留字

         -主要用于扩充Python程序功能

         -采用<a>.<b>()编码风格

         -即   import <库名>

                  <库名>.<函数名>(<函数参数>)

         -再不会造成歧义,或冲突的情况下,可以将第一句改写为

from <库名> import *

这样之后的应用中就可以省略库名,方面书写代码。     

         -或者,通过

import  <库名> as <库别名>

  的方式来更改库名为更加简单的名字,可以在一定程度上方便书写。

         (2)turtle画笔控制函数

        -画笔控制函数基本原则:

  •    画笔操作后一直有效,一般成对出现。

例如:

-turtle.penup()          别名     turtle.pu()

表示抬起画笔,海龟在飞行,不会在画布上形成图案。

-turtle.pendown()      别名    turtle.pd()

表示落下画笔,海龟在爬行,会在画布上形成图案。

一般来讲有抬起就应该有落下,二者成对出现

  • 画笔设置后一直有效,直至下次重新设置

例如:

-turtle.pensize(width)   别名 turtle.width(width)

画笔宽度,海龟的腰围

-turtle.pencolor(color)  

color为颜色字符串或r,g,b值

表示画笔颜色,海龟在涂装

9895c8ce00024efdac79fae79d0a6b07.jpg 

          (3)turtle运动控制函数

          -控制海龟走直线或走曲线,如

b5414c2600214924bf8f708478e133b0.png

           -fd(d)  即 forward()表示向前走直线,d可以是负数。

           -circle(r,angle)表示以海龟左侧r距离为圆心,并绕它angle个角度做圆弧运动。若angle为空,默认画整个圆。

          (4)方向控制函数

          -seth()

         -控制海龟运行方向:绝对角度和海龟角度

a80b41817d19469ab7922b237f331464.jpg

 以上函数为绝对角度,是更改方向为坐标系中的对应角度方向。

0e9567d462364ec1a6f467e13ab76242.jpg

 以上函数为海龟角度,是相对于此刻海龟而言再改变多少角度。

           (5)循环语句和range函数

          a62ee846a9bd4959816fb5ee5d166d35.jpg

 134b1ce2cf0846f99f6f5369550a492f.jpg

 

其中,range函数用于产生循环计数序列

-range(N)

产生0到N-1的整数序列,共N个

-range(M,N)

产生M到N-1的整数序列,共N-M个

          (6)逐行分析代码

5265deaa3b2d409395bb50e23bad9ed1.png

  1. 引入turtle库
  2. 创建宽650,高350的窗口在(200,200)处
  3. 抬起画笔
  4. 后退250像素(不留痕迹)
  5. 落笔
  6. 宽度为25
  7. 颜色为紫
  8. 方向为-40度
  9. 循环四次执行:
  10. 曲线一的绘制,
  11. 曲线二的绘制。
  12. 绘制小半个弧形
  13. 绘制蟒蛇的直线身体
  14. 转半圈
  15. 绘制蟒蛇头部
  16. 结束绘制(程序运行后不会直接退出,需要手动点击关闭)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值