将如下代码,放到turtle的源代码的" all="处(要注释掉原来的代码)python
__all__ = ['ScrolledCanvas', 'TurtleScreen', 'Screen', 'RawTurtle', 'Turtle', 'RawPen', 'Pen', 'Shape', 'Vec2D', 'back', 'backward', 'begin_fill', 'begin_poly', 'bk', 'addshape', 'bgcolor', 'bgpic', 'bye', 'clearscreen', 'colormode', 'delay', 'exitonclick', 'getcanvas', 'getshapes', 'listen', 'mainloop', 'mode', 'numinput', 'onkey', 'onkeypress', 'onkeyrelease', 'onscreenclick', 'ontimer', 'register_shape', 'resetscreen', 'screensize', 'setup', 'Terminator', 'setworldcoordinates', 'textinput', 'title', 'tracer', 'turtles', 'update', 'window_height', 'window_width', 'write_docstringdict', 'done', 'circle', 'clear', 'clearstamp', 'clearstamps', 'clone', 'color', 'degrees', 'distance', 'dot', 'down', 'end_fill', 'end_poly', 'fd', 'fillcolor', 'filling', 'forward', 'get_poly', 'getpen', 'getscreen', 'get_shapepoly', 'getturtle', 'goto', 'heading', 'hideturtle', 'home', 'ht', 'isdown', 'isvisible', 'left', 'lt', 'onclick', 'ondrag', 'onrelease', 'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pos', 'position', 'pu', 'radians', 'right', 'reset', 'resizemode', 'rt', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setx', 'sety', 'shape', 'shapesize', 'shapetransform', 'shearfactor', 'showturtle', 'speed', 'st', 'stamp', 'tilt', 'tiltangle', 'towards', 'turtlesize', 'undo', 'undobufferentries', 'up', 'width', 'write', 'xcor', 'ycor']
一、初始化"画布"web
turtle.setup(widthPix, heightPix, startX, startY)
例:
设置初始画布宽度为80%的屏幕宽度canvas
turtle.setup(width=0.8)
二、初始化"画笔"
1)、 设置笔颜色ide
turtle.pencolor("red")
2)、设置线宽(计算机绘图的最小单位为像素,此处能够传浮点型数据,可是实际绘图的时候依旧会以整数像素为单位进行运动)svg
turtle.width(4)
3)、设置笔的运行速度函数
turtle.speed(speedPara)
speedPara —— 1~10,逐渐递增
speedPara —— 0,速度最快oop
4)、设置画笔的形状动画
turtle.shape(shapeStr)
shapeStr取值“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”spa
三、移动画笔,进行画图
1)、前进3d
turtle.forward(moveDistance) 或者 turtle.fd(moveDistance) 如: turtle.forward(100)
2)、后退
turtle.back(moveDistance) turtle.bk(moveDistance)
3)、移动到指定位置
方法一:
turtle.goto(二维坐标元组) 如: turtle.goto((x, y))
方法二:
保持y(x)不变,移动x(y)
turtle.setx(目标位置的x坐标) turtle.sety(目标位置的y坐标)
方法三:
回到原点
turtle.home()
turtle坐标系
四、控制画笔方向
1)、左旋转
turtle.left(角度) 如: turtle.left(90)
2)、右旋转
turtle.right(角度)
3)、直接设置画笔的箭头角度
turtle.setheading(角度) 或 turtle.seth(角度)
五、保持画布持续运行
turtle.mainloop()
注意:turtle.mainloop()以后的代码不运行,代码运行到此处后进入到mainloop()的无限循环中
六、经常使用形状函数
1)、画圆
turtle.circle(半径)
以当前箭头所在位置为起点,逆时针画圆
import turtle turtle.setup(900, 900) turtle.pencolor("green") turtle.width(4) turtle.speed(3) turtle.right(45) turtle.fd(100) turtle.left(45) turtle.fd(100) # 画圆 turtle.circle(150) turtle.mainloop()
2)、画弧
第二个参数“角度”是指画笔旋转的目标角度,即若是此值为90则画笔旋转90度后即中止运动
turtle.circle(半径,角度)
import turtle turtle.setup(900, 900) turtle.pencolor("green") turtle.width(4) turtle.speed(1) turtle.seth(90) # 画弧 turtle.circle(200, 90) turtle.mainloop()
3)、画一个有填充的圆(相似于大点)
turtle.dot(直径)
七、控制画笔起落
1)、抬起
turtle.up()
2)、落下
turtle.down()
八、颜色填充
非必须闭合
turtle.fillcolor("red") turtle.begin_fill() 在此处画轮廓 turtle.end_fill()
import turtle turtle.setup(900, 900) turtle.pencolor("green") turtle.width(4) turtle.speed(1) # 画有填充的形状 turtle.fillcolor("red") turtle.begin_fill() turtle.fd(100) turtle.sety(100) turtle.setx(0) turtle.home() turtle.end_fill() turtle.mainloop()
import turtle # 初始化画图 turtle.setup(900, 900) # 画笔设置 # # 设置画笔颜色 turtle.pencolor("red") # # 设置画笔宽度 turtle.width(4.5) # # 设置画笔速度 turtle.speed(1) # 画笔运动 # # 前进 turtle.forward(400) # # 后退 turtle.back(400) # # 到达指定点 turtle.goto((100, 100)) # 画笔旋转 #向左旋转 turtle.left(90) turtle.seth # 初始化画笔 turtle.pencolor("red") # 经过转向画圆 n = 1 while n <= 120: turtle.forward(10) turtle.left(3) n += 1 # 保持画布运行 turtle.mainloop()
import turtle turtle.setup(900, 900) turtle.pencolor("green") turtle.width(4) turtle.speed(0) turtle.seth(90) # 画球体 n = 1 while n <= 36: turtle.circle(200) turtle.left(10) n += 1 turtle.mainloop()