Python基本图形绘制详解(给你一条线,便能绘制整个世界)

Python基本图形绘制详解(给你一条线,便能绘制整个世界)

用Python基本图形绘制一般都是从画一条小蛇入手。
Python小蛇绘制问题是各类图像绘制问题的代表,清楚理解这16行代码便能掌握Python基本绘图方法,举一反三,可绘制玫瑰花,五角星,国旗等等任何你想要的图案。
即掌握绘制一条线的方法,就可以绘制整个世界。
开门见山,先来一段代码。

#一条小粉蛇
import turtle
turtle.setup(800,400)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("pink")
turtle.seth(-40)
for i in range(4):
 turtle.circle(40, 80)
 turtle.circle(-40, 80)
turtle.circle(40, 40)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(25)
turtle.done()

运行结果:

在这里插入图片描述


turtle库
代码最开始的import 保留字引入了一个绘图库,名字叫:turtle。
海龟库是turtle绘图体系的Python实现,Python语言的标准库之一,是入门级的图形绘制函数库。
相当于有一只海龟,在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形。
海龟由程序控制,可以变换颜色、改变宽度等。
下面例举例举一些函数。

turtle的绘图窗体

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

我们可以用setup()设置窗体大小及位置。
setup()不是必须设置的,如果不设置,将会使用默认窗体,窗体会在中心位置。
当startx, starty都为0时,窗体会在屏幕左上角。

turtle空间坐标体系
分为绝对坐标和海龟坐标。
绝对坐标:
goto函数如下

turtle.goto(x, y)

goto,顾名思义就是去到你想要的位置,窗口中心为坐标轴原点,填写你要的x轴y轴坐标。
举个例子:

在这里插入图片描述


海龟坐标:
以海龟的第一人称视角定义前后左右。
有以下函数:

turtle.fd(d)#前进
turtle.bk(d) #后退
turtle.circle(r,angle)#曲线行进

turtle角度坐标体系
分绝对角度和海龟角度。
先看绝对角度。

turtle.seth(angle) 

seth()改变海龟行进方向,angle为绝对度数,seth()只改变方向但不行进。
举个例子:
(45度,看小箭头的指向)

在这里插入图片描述


再看海龟角度。
以海龟为第一人称视角确定角度。

turtle.left(angle)
turtle.right(angle)

举个例子:

在这里插入图片描述

RGB色彩体系
RGB指红蓝绿三个通道的颜色组合,它覆盖了视力所能感知的所有颜色。
RGB每色取值范围0-255整数或0-1小数。
比如白色,RGB整数值 255, 255, 255,RGB小数值 1,1,1。
黄色,RGB整数值 255, 255, 0 ,RGB小数值 1, 1, 0 。

turtle.colormode(mode) 

mode=1.0:RGB小数值模式
mode=255:RGB整数值模式
默认采用小数值,可切换为整数值。

turtle画笔控制函数

turtle.penup()
turtle.pendown() 

turtle.penup(),别名 turtle.pu(),意为抬起画笔。
turtle.pendown() ,别名 turtle.pd(),意为落下画笔。
画笔操作后一直有效,一般是成对出现的。

turtle.pensize(width) 
turtle.pencolor(color) 

turtle.pensize(width) ,别名 turtle.width(width),画笔宽度。
turtle.pencolor(color) ,color为颜色字符串或r,g,b值,画笔颜色。
pencolor(color)的color可以有三种形式:

turtle.pencolor("purple") #颜色字符串 
turtle.pencolor(0.63, 0.13, 0.94)#RGB的小数值
turtle.pencolor((0.63,0.13,0.94))#RGB的元组值

即 pencolor(colorstring) 和 pencolor(r,g,b) 和 pencolor((r,g,b))。

turtle运动控制函数
控制海龟行进可选择走直线和走曲线。

turtle.forward(d)

别名 turtle.fd(d),向前行进,海龟走直线。
d:行进距离,可以为负数。

turtle.circle(r, extent)

根据半径r绘制extent角度的弧形。
r:默认圆心在海龟左侧r距离的位置。
extent:绘制角度,默认是360度整圆。

turtle方向控制函数
上文已经介绍了绝对角度和海龟角度。现在直接抛函数。

turtle.setheading(angle)

别名 turtle.seth(angle),改变行进方向,海龟走角度。
angle: 行进方向的绝对角度。

turtle.left(angle)#海龟向左转
turtle.right(angle)#海龟向右转

angle: 在海龟当前行进方向上旋转的角度。

以上就是一些python绘图的基本操作。
再看一遍小蛇的代码:

import turtle
turtle.setup(800,400)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("pink")
turtle.seth(-40)
for i in range(4):
 turtle.circle(40, 80)
 turtle.circle(-40, 80)
turtle.circle(40, 40)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(25)
turtle.done()

现在每一行的代码都不陌生了。
结尾的 turtle.done() 作用是使图案画完了不会直接关闭绘图窗口。
再来画一个爱心吧。

import turtle
turtle.pensize(20)
turtle.pencolor("tomato")
turtle.seth(90)
turtle.circle(50,222)
turtle.seth(-45)
turtle.fd(120)
turtle.seth(45)
turtle.fd(120)
turtle.circle(50,222)

运行结果:

在这里插入图片描述


现在你可以用turtle绘制任何你想要的图形了,快来试试吧。
整理了一个下午,如果觉得本文对你有用,就点个赞吧~ 谢谢支持~