近期笔者自学了一点Python语言的知识
其中的 turtle库 就是一个很有意思的图形库
而 turtle库 相较于C++的图形库 graphics.h 而言,也简洁清爽了不少
以下笔者结合自己的学习过程,对 turtle库 进行了一些整理:
函数名 | 具体操作 |
---|---|
turtle.forward(distance) | 向当前画笔方向移动distance像素长度 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.circle(+rad,angle) | 以rad为半径,angle为角度画圆,圆心在画笔左侧 |
turtle.circle(-rad,angle) | 以rad为半径,angle为角度画圆,圆心在画笔右侧 |
turtle.seth(angle) | 将画笔转动angle角度,以逆时针为默认方向 |
turtle.fd(length) | 沿当前方向前进length |
turtle.bd(length) | 沿当前方向后退length |
turtle.right(angle) | 顺时针移动angle° |
turtle.left(angle) | 逆时针移动angle° |
turtle.goto(x,y) | 将画笔移动到坐标为x,y的位置 |
home() | 将画笔位置还原,默认指向屏幕正右侧 |
函数名 | 具体操作 |
---|---|
turtle.setup(length,width,x,y) | 画布大小设置为length*width,初始化在屏幕的(x,y)处 |
turtle.pensize(size);turtle.width(size) | 设置画笔宽度为size |
turtle.pencolor(“color1”,“black”) | 设置画笔颜色为color1,引导画笔的turtle颜色为color2 |
turtle.fillcolor(“color”) | 设置填充色为color |
turtle.bgcolor(“color”) | 设置背景颜色为color |
turtle.clear() | 清空整个画布,但不会改变turtle的位置和状态 |
turtle.reset() | 清空整个画布,同时初始化turtle的位置和状态 |
turtle.done() | 结束绘画,必须是图形程序中的最后一句 |
turtle.undo() | 撤销上一个操作 |
这里需要注意颜色的设定可以是 颜色所对应的英文 ,也可以是 颜色对应的RPG三元组
import turtle
turtle.fillcolor("red")
turtle.begin_fill()
for i in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
turtle.hideturtle()
turtle.done()
import turtle
def main():
turtle.setup(300,300,600,120)
turtle.pensize(6)
turtle.color('blue','black')
turtle.circle(40,360)
turtle.seth(90)
turtle.circle(40,360)
turtle.seth(180)
turtle.circle(40,360)
turtle.seth(270)
turtle.circle(40,360)
turtle.seth(0)
turtle.done()
main()
import turtle
def drawSnake(rad, angle, len, neckrad):
for i in range(len):
turtle.circle(rad,angle)
turtle.circle(-rad,angle)
turtle.circle(rad,angle/2)
turtle.fd(rad)
turtle.circle(neckrad+1,180)
turtle.fd(rad*2/3)
def main():
turtle.setup(1300,800,0,0)
pythonsize = 30
turtle.pensize(pythonsize)
turtle.pencolor("blue")
turtle.seth(-40)
drawSnake(40,80,5,pythonsize/2)
turtle.done()
main()
这个图案笔者也是看到大佬的创意模仿的,
不过可操作性比较强:
import turtle
t=turtle.Pen()
turtle.bgcolor("black")
side=6
colors=["red","yellow","green","blue","orange","purple"]
for x in range(360):
t.pencolor(colors[x%side])
t.forward(x*3/side+x)
t.left(360/side+1)
t.width(x*side/200)
turtle.done()