03 Python基本图形绘制

  • Post author:
  • Post category:python


一、蟒蛇绘制

import turtle#导入了turtle包以及所有的内部成员

代码:

import turtle#引入海龟绘图体系
turtle.setup(650,350,200,200)#窗体设置
turtle.penup()#将画笔抬起,无痕迹
turtle.fd(-250)#海龟倒退-250个像素
turtle.pendown()#海龟落下
turtle.pensize(25)#海龟的腰围
turtle.pencolor("red")#海龟的颜色
turtle.seth(-40)#海龟的角度改为绝对值-40方向
for i in range(4):
    turtle.circle(40,80)#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 turtle as t
t.setup(650,350,200,200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("yellow")
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)



二、基础知识

1.turtle库基本介绍


2.标准库


三、代码解释

1.turtle绘图窗体布局

(1)理解窗体:

(2)含义

(3)举例

2.turtle空间坐标体系

2.1 绝对坐标

(1)可以类比数学上的坐标系

(2)turtle.goto(x,y)#让海龟沿着

绝对坐标

进行运动

(3)

代码:

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

结果是一个动着的图

(4)

代码:

import turtle as t
t.penup()
t.fd(-100)
t.pendown()
t.goto(-100,100)
t.goto(100,100)
t.goto(100,-100)
t.goto(-100,-100)
t.goto(-100,0)

2.2 turtle空间坐标体系

#turtle.fd向海龟的正前方,bk向海龟的反方向,circle表示以某一点为圆心进行曲线运行

3.turtle角度坐标体系

3.1 绝对坐标角

Seth改变的是海龟头朝向

3.2 海龟角度

import turtle as t
t.pencolor("red")
t.pensize(25)
t.left(45)
t.fd(150)
t.right(135)
t.fd(300)
t.left(135)
t.fd(150)

4.RGB色彩体系




5.turtle画笔控制函数(画笔操作函数,一般成对出现;画笔设置后一直有效,直至下次重新设置)

(1)turtle.penup又称turtle.pu

抬起画笔,海龟在飞行,飞行物痕迹

(2)turtle.pendown又称turtle.pd

落下画笔,海龟在爬行,爬行留下痕迹

(3)turtle.pensize(width) 画笔宽度,海⻳的腰围

(4)turtle.pencorlor(color)有三种形式

举例:

6. turtle运动控制函数(控制海龟走直线或走曲线)

(1)走直线

(2)走曲线

EG:一般情况下,circle内部表示的是以海龟左侧100米的圆心,而-100则是以海龟右侧的圆心,角度为顺时针


7.turtle方向控制函数(分为绝对角度和海龟角度)

(1)绝对角度

EG:

(2)海龟角度

四、小结

2:总结代码

函数 描述 : 初始化画布 (这里只提供了turtle的一些基本设置函数,更多函数请自行百度)

turtle.penup() 提起画笔,海⻳⻜行不留下痕迹

turtle.pendown() 放下画笔,海⻳爬行留下痕迹

turtle.pencolor(color) 海⻳的涂装,可以为字符串或RGB三元组

turtle.pensize(width) 画笔宽度,海⻳的腰围

turtle.setup(width,height,startx,starty) 创建画布

turtle.screensize(canvwidth=None,convheight=None,bg=None) 设置画布大小,参数分别为画布的宽(单位像素),高,背景颜色

turtle.colormode(mode) 设置颜色模式,默认小数模式,255大数模式

函数 描述 : 画图操作

turtle.forward(x) 向当前画笔⽅向移动x个像素

turtle.backward(x) 向当前画笔相反⽅向移动x像素⻓度

turtle.left(degree) 当前⽅向左转degree度,只转向不移动

turtle.right(degree) 当前⽅向右转degree度,只转向不移动

turtle.circle(radius,extent=None) 根据半径radius绘制extent⻆度的弧形,默认为360

函数 描述:画笔控制命令

命令 说明
turtle.fillcolor(colorstring) 绘制图形的填充颜色
turtle.color(color1, color2) 同时设置pencolor=color1, fillcolor=color2
turtle.filling() 返回当前是否在填充状态
turtle.begin_fill() 准备开始填充图形

turtle.end_fill()

填充完成

turtle.hideturtle()

隐藏画笔的turtle形状

turtle.showturtle()

显示画笔的turtle形状

函数 描述:全局控制

命令 说明

turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset()

清空窗口,重置turtle状态为起始状态

turtle.undo()

撤销上一个turtle动作

turtle.isvisible()

返回当前turtle是否可见

stamp()

复制当前图形

turtle.write(“年”,font=(“Arial”,18,normal)) 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项


3:

4:知识点

(1)import的三种用法

import只有三种使用方法,以turtle库为例:

import turtle

from turtle import setup   或  from turtle import *

import turtle as t  (其中t是别名,可以更换其他名称)

(2)turtle坐标系的原点默认在窗体正中间

turtle库是一个直观有趣的图形绘制函数库

turtle绘图体系以水平右侧为绝对方位的0度

turtle库最早成功应用于LOGO编程语言

(3)turtle.penup()的别名有turtle.pu(),turtle.up()

turtle.width()和turtle.pensize()都可以用来设置画笔尺寸

turtle.colormode()的作用是设置画笔RGB颜色的表示模式

turtle.pendown()作用是落下画笔,并不绘制任何内容

5:代码解释

#PythonDraw.py                   # 注释
import turtle                    #调用海龟绘图函数turtle
turtle.setup(650, 350, 200, 200)  #定义绘图窗体
turtle.penup()                   #画笔抬起
turtle.fd(-250)                  #向后(X轴负方向)移动250个像素
turtle.pendown()                 #画笔落下,开始绘画
turtle.pensize(25)               #设置画笔粗细,款25像素
turtle.pencolor("purple")          #设置画笔颜色为紫色
turtle.seth(-40)                #设置画笔朝向角度为-40°
for i in range(4):              #使用for in 遍历循环,循环四次结束
    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像素,角度为1800°的弧线
turtle.fd(40 * 2/3)            #画笔向前画80/3像素的直线
turtle.done()                  #绘制结束并保持当前绘制结果,若没有则窗口迅速关闭

注意

本文题目来源为Python123平台和中国大学MOCC的《Python语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。



版权声明:本文为m0_47017197原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。