【Python程序设计(二)】Python基本图形绘制

1 实例: Python 蟒蛇绘制

#PythonDraw.py
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()

在这里插入图片描述

2 turtle 库的使用

2.1 turtle 绘图窗体

turtle 的画布空间如下图所示:
在这里插入图片描述
绘图窗体左上角的位置代表窗体位置,窗体长和宽代表窗体大小。
在这里插入图片描述
窗体的大小及位置可以通过函数 setup() 绘制:

turtle.setup(width, height, startx, starty)

  • 4个参数中后两个可选
  • setup() 不是必须的

setup() 函数使用如下所示:
在这里插入图片描述

2.2 turtle 空间坐标体系

在 turtle 绝对坐标体系,向右为 x 正方向,向上为 y 正方向。
在这里插入图片描述
函数goto() 可以直接运动到给定的坐标位置,函数如下:

turtle.goto(x, y)

example:

import turtle
turtle.goto( 100, 100)
turtle.goto( 100,-100)
turtle.goto(-100,-100)
turtle.goto(-100, 100)
turtle.goto(0,0)

执行如下:
在这里插入图片描述
circle(r, angle) 以当前点左边距离为 r 的位置为圆心画圆,角度为 angle
fd(d) 表示当前方向前进距离 d
在这里插入图片描述

2.3 turtle 角度坐标体系

在这里插入图片描述
seth() 函数可以改变行进方向
turtle.seth(angle)

  • angle 为绝对度数
  • seth() 只改变方向但不行进

left() 和 right 函数分别表示向左向右旋转一定角度:
turtle.left(angle)
turtle.right(angle)

example:

import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

执行:
在这里插入图片描述

2.4 RGB 色彩体系

由三种颜色构成的万物色

  • RGB指红蓝绿三个通道的颜色组合
  • 覆盖视力所能感知的所有颜色
  • RGB每色取值范围0-255整数或0-1小数
英文名称 RGB整数值 RGB小数值 中文名称
white 255, 255, 255 1, 1, 1 白色
yellow 255, 255, 0 1, 1, 0 黄色
magenta 255, 0, 255 1, 0, 1 洋红
cyan 0, 255, 255 0, 1, 1 青色
blue 0, 0, 255 0, 0, 1 蓝色
black 0, 0, 0 0, 0, 0 黑色
seashell 255, 245, 238 1, 0.96, 0.93 海贝色
gold 255, 215, 0 1, 0.84, 0 金色
pink 255, 192, 203 1, 0.75, 0.80 粉红色
brown 165, 42, 42 0.65, 0.16, 0.16 棕色
purple 160, 32, 240 0.63, 0.13, 0.94 紫色
tomato 255, 99, 71 1, 0.39, 0.28 番茄色

默认采用小数值,可切换为整数值

turtle.colormode(mode)

  • 1.0:RGB小数值模式
  • 255:RGB整数值模式

3 turtle 程序语法元素分析

3.1 库引用与 import

库引用:扩充 Python 程序功能的方式

  • 使用 import 保留字完成,采用<a>.<b>()编码风格
    import <库名>
    <库名>.<函数名>(<函数参数>)

example:
在这里插入图片描述

但是多次写 turtle,很繁琐,有另外的写法,更加简单

  • 使用 from 和 import 保留字共同完成
    from <库名> import <函数名>
    from <库名> import *
    <函数名>(<函数参数>)

example:
在这里插入图片描述
两种写法比较:

写法一
import <库名>
<库名>.<函数名>(<函数参数>)

写法二
from <库名> import <函数名>
from <库名> import *
<函数名>(<函数参数>)

第一种方法不会出现函数重名问题,第二种方法则会出现

import 更多用法:给库起别名

  • 使用 import 和 as 保留字共同完成
    import <库名> as <库别名>
    <库别名>.<函数名>(<函数参数>)

给调用的外部库关联一个更短、更适合自己的名字
example:
在这里插入图片描述

3.2 turtle 画笔控制函数

画笔控制函数有四个 penup(), pendown(), pensize(), pencolor() 下面分别讲解。

  • turtle.penup() 别名 turtle.pu()
    抬起画笔
  • turtle.pendown() 别名 turtle.pd()
    落下画笔
  • turtle.pensize(width) 别名 turtle.width(width)
    画笔宽度
  • turtle.pencolor(color) color为颜色字符串或r,g,b值
    画笔颜色

pencolor(color) 的 color 可以有三种形式

  • 颜色字符串 :turtle.pencolor(“purple”)
  • RGB 的小数值:turtle.pencolor(0.63, 0.13, 0.94)
  • RGB 的元组值:turtle.pencolor((0.63,0.13,0.94))

3.3 turtle 运动控制函数

运动控制函数有两个分别是 fd() 和 circle()

  • turtle.forward(d) 别名 turtle.fd(d)
    向前行进,走直线,d 是行进距离,可以为负数
  • turtle.circle(r, extent=None)
    根据半径 r 绘制 extent 角度的弧形,默认圆心在海龟左侧 r 距离的位置,extent 为绘制角度,默认是360度整圆

3.4 turtle 方向控制函数

方向控制函数有三个,分别是 seth(),left() 和 right(),seth() 改变绝对角度,left() 和 right()改变海龟角度

  • turtle.setheading(angle) 别名 turtle.seth(angle)
    改变行进方向,angle 为行进方向的绝对角度
  • turtle.left(angle) 海龟向左转
  • turtle.right(angle) 海龟向右转
    angle: 在海龟当前行进方向上旋转的角度

3.5 基本循环语句

按照一定次数循环执行一组语句

  • for <变量> in range(<次数>):
    <被循环执行的语句>

<变量>表示每次循环的计数,0 到<次数>-1

example:

>>> for i in range(5):
	print("hello:",i)

hello: 0
hello: 1
hello: 2
hello: 3
hello: 4

range()函数:产生循环计数序列

  • range(N):产生 0 到 N-1的整数序列,共N个
  • range(M,N):产生 M 到 N-1的整数序列,共N-M个

4 小结

turtle 库的使用

  • turtle库的海龟绘图法
  • turtle.setup() 调整绘图窗体在电脑屏幕中的布局
  • 画布上以中心为原点的空间坐标系: 绝对坐标&海龟坐标
  • 画布上以空间 x 轴为 0 度的角度坐标系: 绝对角度&海龟角度
  • RGB 色彩体系,整数值&小数值,色彩模式切换

turtle 程序语法元素分析

  • 库引用: import、from…import、import…as…
  • penup()、pendown()、pensize()、pencolor()
  • fd()、circle()、seth()
  • 循环语句:for 和 in、range() 函数
发布了298 篇原创文章 · 获赞 181 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/happyjacob/article/details/105130741