2022年 11月 9日

Python蟒蛇实例详解及其turtle库的详解

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()

运行截图:

 

turtle的相关详解

针对该程序,我们认识了解到python的标准库turtle库,Python的计算生态包括标准库和第三方库。

turtle是Python内置的一个标准模块(库),他提供了绘制线、圆和其他形状的函数,使用该模块可以创建图形窗口,在图形窗口中通过简单重复动作直观的绘制界面和图形。

turtle的绘图窗体:

1.turtle.setup函数用来设置启动窗体的位置和大小。

turtle.setup(width,height,startx(窗口在计算机屏幕上的横坐标),starty(窗口在计算机屏幕上的纵坐标))。

setup函数也不是必须的,只有当你需要控制窗体的大小和在屏幕中显示位置的时候,才需要用setup()函数

turtle的空间坐标体系:

1.绝对坐标:最开始在画布的中心,为(0,0),向左为x轴,向上为y轴。

2.海龟坐标:海龟的头所在的行进方向为正方向,反方向即为后退方向,左侧为左侧方向,右侧为右侧方向。

turtle.goto(x,y)指的是让在任何位置的海龟去到达某一个坐标位置

turtle.fd指的是向海龟的正前方向运行

turtle.bk指的是向海龟的后退方向运行

turtle.circle指的是以海龟当前位置左侧的某一个点为圆心进行曲线运行。

turtle.goto语句(绝对坐标基础上)的使用的示例如下:

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

运行结果示例图:

 

turtle角度坐标体系:

1.绝对角度:turtle.seth改变海龟行进方向(只改变方向但不行进)

turtle.seth(绝对度数)

2.海龟角度:海龟前进方向的左侧为turtle.left(度数),右侧为turtle.right(度数)。

示例如下:

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

运行结果如下:

 

RGB颜色取值范围:

0-255整数或者0-1小数

去改变色彩数值时使用turtle.colormode(mode) mode=1.0时,RGB小数值

mode=255时,RGB整数值模式

库引用

扩充python程序功能的方式

  1. 使用import保留字完成,采用<a>.<b>()编码风格

import <库名>

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

例如:import turtle

turtle.setup(50,50)

2.采用import和from保留字共同完成

from <库名> import<函数名>

例如:from turtle import *

seth(45)

putdown()

3.使用import和as保留字共同完成

import <库名> as<库别名>

例如:import turtle as t

t.left(45)

t.putdown(50)

turtle画笔控制函数

penup:提起画笔

pendown:落下画笔

pensize:设置画笔宽度, width( ) turtle.pensize(25)=turtle.width(25)

pencolor:修改画笔颜色,pencolor(color)的color可以有三种形式:

颜色字符串:’purple’

RGB的小数值

RGB的元组值((0.12,0.12,0.12))

turtle运动控制函数

1.turtle.fd 向前行走,d行进距离,d值为负数时为倒退。

2.turtle.circle(r,extent:None)

根据半径r绘制extent角度的弧形

r默认圆心在海龟左侧r距离的位置

turtle方向控制函数

1.turtle.seth(30)在绝对角度下

2.turtle.left(30) turtle.right(30) 在海龟角度下。

for 变量 in range(<参数>) 其中参数即为循环的次数。

range(N)

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

range(M,N)

产生从M开始,到N-1的整数序列,共N-M个。

解释代码程序:

#PythonDraw.py
import turtle#调用turtle库函数
turtle.setup(650, 350, 200, 200)#建立绘图窗体,分别为宽650个像素,高350个像素,离左上角坐标为(200,200)
turtle.penup()#画笔抬起
turtle.fd(-250)#fd为向前进-250为负值,向后退250个像素.
turtle.pendown()#画笔落下,开始描画
turtle.pensize(25)#画笔宽度为25个像素
turtle.pencolor("purple")#所画的颜色为purple
turtle.seth(-40)#在绝对角度下转动角度为-40度
for i in range(4):#进行循环,循环四次
    turtle.circle(40, 80)#在离海龟左侧距离为40的位置弧度为80度。
    turtle.circle(-40, 80)#在离海龟左侧距离为-40的位置弧度为80度。
turtle.circle(40, 80/2)#在离海龟左侧距离为40的位置弧度为40度。
turtle.fd(40)#向前进40
turtle.circle(16, 180)#在离海龟左侧距离为16的位置,弧度为180.
turtle.fd(40 * 2/3)#继续前进40*2/3
turtle.done()

#即为对于代码的注释。

turtle.circle(m,n)

确定角度后,m+n+左顺(从点出发,顺时针旋转)

m-n+ 右顺

m+n-左逆

m-n-右逆