python turtle
vfk在去年省队集训讲过一个python画图的方法。。可惜我那时还在玩泥巴。。
最近做作业去了碰到一道神题DIVIDEN,所以想来学习一下python的画图技巧。不画图有本事你来调这个题
turtle是python中的一个库,可以支持像logo语言一样的画图技巧。你想象一个乌龟wyh2000站在原点,你可以控制它走路,它走过的地方就会留下痕迹。。就可以画图了。
其实并不知道NOI-Linux下的python中有没有这种库。。希望有。upd.noip的时候看了一下。。并没有这个库
命令有:(顺序按照字典序,只讲我关心的,全是抄帮助文档上的,想看全部命令请打开python,输入help(turtle))
begin_fill()
不需要参数。需要填充一个形状的时候使用它。
turtle.begin_fill() turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.end_fill()
clear()
清除屏幕,不移动乌龟。
clone()
返回该乌龟的一个复制。
dot(size,color)
画点。size可以省略,如果省略会取$\max(pensize+4,2\times pensize)$。color吗,我连tuple都不会用,肯定用colorstring啦。
比如说turtle.dot(20,"blue")
end_fill()
见begin_fill()
fill()
fill(1)就是begin_fill()
fill(0)就是end_fill()
write
写字。
color
不传参就是返回当前颜色,传参就是修改颜色。
down
开始画画。(即,走到哪画到哪)
hideturtle
隐藏乌龟?
据说可以加速complicated drawing。
isdown
画笔是否被放下。
up
与down相反。
speed
设置速度
back(x)
向后走$x$步
circle(r)
以$r$为半径画圆
可以画圆弧和正多边形(因为圆就是正(大数)边形啊)
extend表示是弧度(默认360,正负号决定顺/逆时针),比如说circle(radius=4,extend=180)就是半圆
steps表示是要画几边形,比如说circle(radius=4,steps=6)就是六边形
forward(x)
向前走$x$步
goto(x,y)
瞬移
也可以写作setpos
如果pendown,那么会画画。
left(r),right(r)
向左向右转,貌似传参是默认角度制,不过可以改变。
seth(a)
设置乌龟的朝向。东方是$0$,北方是$90$。
towards(x,y)
好像是atan2类似物?
就这么多吧,反正帮助文档里也有,写得比这里写的清晰多了。
最后不要忘了用time库里的sleep函数来暂停,这样就可以看到画出的图像~\(≧▽≦)/~啦啦啦