python画图程序库_python绘图工具turtle库的使用详解

前几天学习了一下python的turtle库,它是python中一个绘制图像的函数库,用海龟可以画出各种图像,学习之后我画了可爱的小黄人,和太阳等图案,觉得很好玩很有趣,在这里想介绍一下turtle的使用详解,感兴趣或者需要的朋友可以参考一下。

首先说明一下turtle绘图的基础知识:

1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

1.1 设置画布大小

(1)turtle.screensize(canvwidth=None, canvheight=None, bg=None)

参数分别为画布的宽(单位像素), 高, 背景颜色

如:

turtle.screensize(800, 600, "green")

turtle.screensize() #返回默认大小(400, 300)

(2) turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:

width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例

(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

如:

turtle.setup(width=0.6, height=0.6)

turtle.setup(width=800, height=800, startx=100, starty=100)

2. 画笔

2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟. 这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度)

1) turtle.pensize():设置画笔的宽度;

2) turtle.pencolor(); 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组,

>>> pencolor('brown')

>>> tup = (0.2, 0.8, 0.55)

>>> pencolor(tup)

>>> pencolor()

'#33cc8c'

3) turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

2.3 绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令

(1)画笔运动命令:

(2)画笔控制命令:

(3) 全局控制命令

3. 命令详解

3.1 turtle.circle(radius, extent=None, steps=None)

描述: 以给定半径画圆

参数:

radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆

extent(弧度) (optional);

steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)

4. 绘图实例

4.1 太阳花

import turtle as t

import time

t.color("red","yellow")

t.speed(10)

t.begin_fill()

for x in range(50):

t.forward(200)

t.left(170)

end_fill()

time.sleep(2)

4.2 彩虹线

import turtle as t

from random import randint as rint

t.shape("turtle")

t.pensize(5)

t.colormode(255)

t.bgcolor("black")

t.tracer(False)

for x in range(700):

t.color(rint(0,255),rint(0,255),rint(0,255))

t.circle(2*(1+x/4),5)

t.speed(30)

t.tracer(True)

4.3 小黄人

import turtle

t = turtle.Turtle()

wn = turtle.Screen()

turtle.colormode(255)

t.hideturtle()

t.speed(10)

t.penup()

t.pensize(4)

t.goto(100,0)

t.pendown()

t.left(90)

t.color((0,0,0),(255,255,0))

#身体绘制上色

t.begin_fill()

t.forward(200)

t.circle(100,180)

t.forward(200)

t.circle(100,180)

t.end_fill()

#右眼睛绘制上色

t.pensize(12)

t.penup()

t.goto(-100,200)

t.pendown()

t.right(100)

t.circle(500,23)

t.pensize(3)

t.penup()

t.goto(0,200)

t.pendown()

t.seth(270)

t.color("black","white")

t.begin_fill()

t.circle(30)

t.end_fill()

t.penup()

t.goto(15,200)

t.pendown()

t.color("black","black")

t.begin_fill()

t.circle(15)

t.end_fill()

t.penup()

t.goto(35,205)

t.color("black","white")

t.begin_fill()

t.circle(5)

t.end_fill()

#左眼睛绘制上色

t.pensize(3)

t.penup()

t.goto(0,200)

t.pendown()

t.seth(90)

t.color("black","white")

t.begin_fill()

t.circle(30)

t.end_fill()

t.penup()

t.goto(-15,200)

t.pendown()

t.color("black","black")

t.begin_fill()

t.circle(15)

t.end_fill()

t.penup()

t.goto(-35,205)

t.color("black","white")

t.begin_fill()

t.circle(5)

t.end_fill()

#嘴绘制上色

t.penup()

t.goto(-20,100)

t.pendown()

t.seth(270)

t.color("black","white")

t.begin_fill()

t.circle(20,180)

t.left(90)

t.forward(40)

t.end_fill()

#裤子绘制上色

t.penup()

t.goto(-100,0)

t.pendown()

t.seth(0)

t.color("black","blue")

t.begin_fill()

t.forward(20)

t.left(90)

t.forward(40)

t.right(90)

t.forward(160)

t.right(90)

t.forward(40)

t.left(90)

t.forward(20)

t.seth(270)

t.penup()

t.goto(-100,0)

t.circle(100,180)

t.end_fill()

#左裤子腰带

t.penup()

t.goto(-70,20)

t.pendown()

t.color("black","blue")

t.begin_fill()

t.seth(45)

t.forward(15)

t.left(90)

t.forward(60)

t.seth(270)

t.forward(15)

t.left(40)

t.forward(50)

t.end_fill()

t.left(180)

t.goto(-70,30)

t.dot()

#右裤腰带

t.penup()

t.goto(70,20)

t.pendown()

t.color("black","blue")

t.begin_fill()

t.seth(135)

t.forward(15)

t.right(90)

t.forward(60)

t.seth(270)

t.forward(15)

t.right(40)

t.forward(50)

t.end_fill()

t.left(180)

t.goto(70,30)

t.dot()

#脚

t.penup()

t.goto(4,-100)

t.pendown()

t.seth(270)

t.color("black","black")

t.begin_fill()

t.forward(30)

t.left(90)

t.forward(40)

t.seth(20)

t.circle(10,180)

t.circle(400,2)

t.seth(90)

t.forward(20)

t.goto(4,-100)

t.end_fill()

t.penup()

t.goto(-4,-100)

t.pendown()

t.seth(270)

t.color("black","black")

t.begin_fill()

t.forward(30)

t.right(90)

t.forward(40)

t.seth(20)

t.circle(10,-225)

t.circle(400,-3)

t.seth(90)

t.forward(21)

t.goto(-4,-100)

t.end_fill()

#左手

t.penup()

t.goto(-100,50)

t.pendown()

t.seth(225)

t.color("black","yellow")

t.begin_fill()

t.forward(40)

t.left(90)

t.forward(35)

t.seth(90)

t.forward(50)

t.end_fill()

#右手

t.penup()

t.goto(100,50)

t.pendown()

t.seth(315)

t.color("black","yellow")

t.begin_fill()

t.forward(40)

t.right(90)

t.forward(36)

t.seth(90)

t.forward(50)

t.end_fill()

#

t.penup()

t.goto(0,-100)

t.pendown()

t.forward(30)

#

t.penup()

t.goto(0,-20)

t.pendown()

t.color("yellow")

t.begin_fill()

t.seth(45)

t.forward(20)

t.circle(10,180)

t.right(90)

t.circle(10,180)

t.forward(20)

t.end_fill()

#

t.penup()

t.color("black")

t.goto(-100,-20)

t.pendown()

t.circle(30,90)

t.penup()

t.goto(100,-20)

t.pendown()

t.circle(30,-90)

#头顶

t.penup()

t.goto(2,300)

t.pendown()

t.begin_fill()

t.seth(135)

t.circle(100,40)

t.end_fill()

t.penup()

t.goto(2,300)

t.pendown()

t.begin_fill()

t.seth(45)

t.circle(100,40)

t.end_fill()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值