python蟒蛇绘制----计算机绘图

用程序绘制一条蟒蛇

问题1:计算机绘图是什么原理?

	一段程序为何能够产生窗体?为何能再窗体上绘制图形?

问题2:python蟒蛇绘制从哪里开始呢?

	如何绘制一条线?如何绘制一个弧形?如何绘制一个蟒蛇?

代码:
#PythonDraw.py计算机绘图蟒蛇

import turtle  #程序关键,import保留字引入了一个绘图库名字叫:turtle(海龟库)
turtle.setup(650,650,80,30)   
'''使用setup函数来设定一个窗体,
窗体的大小是宽度为650像素,高为650像素,
它的位置的左上角的坐标是(80,30)
说明当前窗体与当前屏幕的位置是在距离当前屏幕左上角(80,30)的像素的地方'''
turtle.penup()   #将画笔抬起
turtle.fd(-250)   #让海龟倒退向后行进250个像素,由于当前画笔处于提起状态,在飞行,所以画布上不留下任何的效果
turtle.pendown()   #将海龟落下
#上面三行代码相当于将海龟由绘图中心的原点变成了在图像中左侧的某一个位置上
#下面开始对海龟的尺寸进行设计
turtle.pensize(25)   #调整它的腰围,设定当前画笔宽度为25个像素
turtle.pencolor("blue")   #画笔颜色为purple
turtle.seth(-40)   #将海龟方向改为绝对的-40度方向
#下面准备启动开始绘制蟒蛇
for i in range(4):
    turtle.circle(40,80)   #circle函数使海龟走曲线,它使用40像素为半径绘制80度的弧度
    turtle.circle(-40,80)   #反向40度为半径绘制80度
   #以上就形成了海龟的一个关节,然后循环四次
turtle.circle(40,80/2)   #让小海龟按照40像素的半径,40度的方式绘制少半个弧形
turtle.fd(40)   #向前行进40度,构成了蟒蛇的脖子部分
#下面两行采用半圆形和继续向前进的一个直线绘制整个蟒蛇的头部
turtle.circle(16,180)
turtle.fd(40 * 2/3)
turtle.done()   #此函数的作用:如果是一个文件式描写方法,写了这个函数作为整个turtle绘制的最后一部分,那么程序运行之后,程序不会退出,需要手工关闭窗体退出,如果希望程序运行之后自动退出,把这个函数去掉即可

解释以上代码:

可以代码中很多turtle.的代码,称为< a >.< b >的代码风格

①库引用

扩充python程序功能的方式
使用import保留字完成,采用< a >.< b >()编码风格
import<库名>
<库名>.<函数名>(<函数参数>)

②import更多用法

(为了以上程序可以不用出现那么多turtle.)

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

使用这种形式就不需要再加库名.的形式
第二种方法的代码为:

from turtle import*
setup(650,650,80,30)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("blue")
seth(-40)
for i in range(4):
    circle(40,80)
    circle(-40,80)
circle(40,80/2)
fd(40)
circle(16,180)
fd(40 * 2/3)
done()

两种方法比较:第一种方法不会出现函数重名问题
第二方法会出现

(2.2)使用import和as保留字共同完成(推荐使用这种方法!!!)

import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
给调用的外部库关联一个更短、更适合自己的名字
冗余量最少,同时又防止库重名的问题

import turtle  as t
t.setup(650,650,80,30)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("blue")
t.seth(-40)
for i in range(4):
    t.circle(40,80)
    t.circle(-40,80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40 * 2/3)
t.done()

③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”) purple参数是字符串形式而且要用小写
-RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
-RGB的元组值:turtle.pencolor((0.63,0.13,0.94)) 元组值指的是将小数值或整数值形成一个独立的元素,(0.63,0.13,0.94)这就是一个元组类型。

④运动控制函数

控制海龟行进:走直线&走曲线
-turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线
-d:行进距离,可以为负数表示倒退
-turtle.circle(r,extent=None)
根据半径r绘制extent角度的弧形
-r:行进半径,默认圆心在海龟左侧r距离的位置
-extent:绘制角度,默认是360度整圆
在海龟当前位置上,以100像素为半径绘制一个圆形,由于没有给出第二个参数,默认绘制整个圆形
半径是负数,圆心在它右侧半径绝对值的地方,所以此时海龟将向它的右侧半径为r的方位为圆心进行曲线运动,第二个参数90表明绘制的弧度是90度,所以形成1/4个弧形

⑤方向控制函数

控制海龟面对方向:绝对角度&海龟角度
-turtle.setheading(angle) 别名 turtle.seth(angle)
改变行进方向,海龟走角度
-angle:改变行进方向,海龟走角度
turtle.seth(45)表示将在原点的海龟使用此代码表明将海龟的方向转向为绝对坐标系中的45度方向
在这里插入图片描述

在这里插入图片描述
-turtle.left(angle) 海龟向左转
-turtle.right(angle) 海龟向右转
angle指的是在海龟当前行进方向上旋转的角度
方向控制函数只改变海龟的方向并不会让海龟进行实际行动,如果希望海龟行动,需要使用运动控制函数,让海龟走直线或曲线

⑥循环语句与range()函数

for i in range(4):
    t.circle(40,80)
    t.circle(-40,80)

这就是循环结构,for 和in保留字,并且设计一个函数range

循环语句

按照一定次数循环执行一组语句
for <变量> in range (<参数>) (此参数代表循环次数)
<被循环执行的语句>
-<变量>表示每次循环的计数,0到<次数>-1
实例。注意到第二个例子中hello和i之间并没有空格,但是输出的hello 0等之间有空格,这是print中的逗号,转换为了空格

range()函数

产生循环计数序列,有以下两种使用方法
第一种:range(N)
产生0到N-1的整数序列,共N个
第二种:range(M,N)
产生M到N-1的整数序列,共N-M个

主要和for in搭配形成计数循环

一、turtle库概述

turtle(海龟)库是turtle绘图体系的python实现
1.turtle绘图体系:1969年诞生,主要用于程序设计入门
2.python语言的标准库之一
3.入门级的图形绘制函数库

二、标准库

python计算生态 = 标准库 + 第三方库
1.标准库:随解释器直接安装到操作系统中的功能模块
2.第三方库:需要经过安装才能使用的功能模块
3.库Library、包Package、模块Module,统称模块

三、turtle的绘图窗体

turtle.setup(width,height,startx,starty)
seetup()设置窗体大小及位置;四个参数,宽度高度起始点的x,y坐标;后两个参数可选;宽度和高度是指窗体本身的宽度和高度;起始点坐标指窗体的左上角的位置的坐标,而左上角位置坐标指的是左上角位置相对于屏幕的左上角的坐标。在绘制图形时setup函数并不是必须的,只有当你需要控制窗体的大小和在屏幕中显示位置的时候才需要用setup函数。turtle.setup(width,height)默认该窗口在屏幕的正中心。

四、turtle空间坐标体系

1.绝对坐标

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

在这里插入图片描述

在这里插入图片描述

2.海龟坐标

海龟本身从它自身的运动来讲,他看到的世界会是什么样子。
turtle.fd(d)指的是向海龟的正前方向运行
turtle.bk(d)表示向海龟的反方向运行
turtle.circle表示以海龟当前位置左侧的某一个点为圆心,进行曲线运行
这些函数也可以改变海龟在空间坐标中的位置,进而实现绘图功能

五、turtle角度坐标体系

turtle.seth(angle)
seth()改变海龟行进方向
seth()只改变方向但不行进
angel为绝对度数
turtle.left(angel)向左改变运行方向
turtle.right(angel)向右改变运行方向

turtle绘制图形实例

import turtle
turtle.left(45) #向左旋转45度,此时并没有运动
turtle.fd(150) #向前行进150像素(长度)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

在这里插入图片描述

六、turtle的RGB色彩模式

默认采用小数值,可切换为整数值
turtle.colormode(mode)
-1.0:RGB小数值模式
-255:RGB整数值模式

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值