1.画布(canvas)

  使用 turtle.setup() | turtle.screensize()

  可以设置画布大小、背景颜色以及标题等。

2.画笔

 2.1画笔状态

 默认画笔在画布中心、宽度为1、方向为水平右、颜色黑色并且下触。

 turtle.pensize() | turtle.width() :设置画笔宽度。turtle.speed() :速度,[0:10],越大越快。

  2.2绘图控制

  a.画笔运动控制

1 #a.画笔运动命令
 2 
 3 turtle.forward(distance)
 4 #向当前画笔方向移动distance像素长度
 5 turtle.backward(distance)
 6 #向当前画笔相反方向移动distance像素长度
 7 turtle.right(degree)
 8 #顺时针移动degree°
 9 turtle.left(degree)
10 #逆时针移动degree°
11 turtle.pendown()
12 #移动时绘制图形,缺省时也为绘制
13 turtle.goto(x,y)
14 #将画笔移动到坐标为x,y的位置
15 turtle.penup()
16 #提起笔移动,不绘制图形,用于另起一个地方绘制
17 turtle.circle()
18 #画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
19 setx( )
20 #将当前x轴移动到指定位置
21 sety( )
22 #将当前y轴移动到指定位置
23 setheading(angle)
24 #设置当前朝向为angle角度
25 home()
26 #设置当前画笔位置为原点,朝向东
27 dot(r)
28 #绘制一个指定直径和颜色的圆点
29 
30 #b.画笔控制命令
31 
32 turtle.fillcolor(colorstring)
33 #绘制图形的填充颜色
34 turtle.color(color1, color2)
35 #同时设置pencolor=color1, fillcolor=color2
36 turtle.filling()
37 #返回当前是否在填充状态
38 turtle.begin_fill()
39 #准备开始填充图形
40 turtle.end_fill()
41 #填充完成
42 turtle.hideturtle()
43 #隐藏画笔的turtle形状
44 turtle.showturtle()
45 #显示画笔的turtle形状
46 
47 #c.全局控制命令
48 
49 turtle.clear()
50 #清空turtle窗口,但是turtle的位置和状态不会改变
51 turtle.reset()
52 #清空窗口,重置turtle状态为起始状态
53 turtle.undo()
54 #撤销上一个turtle动作
55 turtle.isvisible()
56 #返回当前turtle是否可见
57 stamp()
58 #复制当前图形
59 turtle.write(s [,font=("font-name",font_size,"font_type")])
60 #写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
61 
62 #d.其他命令
63 
64 turtle.mainloop()或turtle.done()
65 #启动事件循环 -调用Tkinter的mainloop函数。必须是turtle图形程序中的最后一个语句
66 turtle.mode(mode=None)
67 #设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式
68 '''
69 模式         初始龟标题  正角度
70 standard     向右(东)  逆时针
71 logo         向上(北)  顺时针
72 '''
73 turtle.delay(delay=None)
74 #设置或返回以毫秒为单位的绘图延迟。
75 turtle.begin_poly()
76 #开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点
77 turtle.end_poly()
78 #停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连
79 turtle.get_poly()
80 #返回最后记录的多边形

1 import turtle as t
  2 
  3 def Screen():
  4     #t.setup(width=1024, height=960, startx=100, starty=100)
  5     t.bgcolor("orange")
  6     t.screensize(2000,1500,"#0ffff0")
  7     t.title("Hello!")
  8 
  9 def Draw0():
 10     t.penup()
 11     t.pensize(5)            #pen's width
 12     #t.color("black")       #default is black
 13     #t.forward(10)
 14     t.circle(100,steps=3)
 15     t.pendown()             #default is down
 16     t.goto(-100,-200)
 17     t.penup()
 18         
 19 def Draw1():
 20     t.penup()
 21     t.goto(100,100)
 22     t.pendown()             # 
 23     t.begin_fill()
 24     t.color("yellow")
 25     t.circle(50)
 26     t.end_fill()
 27     t.penup()
 28     
 29 def Draw2():                         
 30     t.penup()
 31     t.goto(200,100)
 32     t.pendown()
 33     t.begin_fill()          #
 34     t.color("blue")         #
 35     t.fillcolor("black")    #
 36     t.circle(50)
 37     t.end_fill()
 38     t.penup()
 39 
 40 '''
 41 turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
 42     Parameters:    
 43         arg – object to be written to the TurtleScreen
 44         move – True/False
 45         align – one of the strings “left”, “center” or right”
 46         font – a triple (fontname, fontsize, fonttype) 
 47 '''
 48 def Write():
 49     t.penup()
 50     #t.goto(0,0)
 51     #t.write("Color Draw",font=("Times",18,"bold"))
 52     t.write("Home = ",False,align="left")
 53     t.write((0,0),True)
 54     t.clear()
 55 
 56 def Draw3():
 57     t.penup()
 58     t.setpos(200,200)
 59     t.pendown()
 60     t.pencolor("blue")
 61     t.right(50)             #Rotate right
 62     t.forward(100)          #
 63     t.dot(10,"red")         #
 64     t.left(50+180)          #Ritate left
 65     t.color("blue")
 66     t.speed(10)
 67     t.forward(100)
 68 
 69 def Draw4():
 70     t.penup()
 71     t.goto(100,100)
 72     t.pen(fillcolor="red",pencolor="black",pensize=10)
 73     t.pendown()
 74     t.circle(50)
 75     t.goto(-100,-100)
 76     t.pencolor("#ffff00")  #"#%02x%02x%02x" % (r, g, b)
 77     t.width(2)
 78     t.forward(100)
 79     t.left(180)
 80 
 81 def Draw5():
 82     #t.color("black","red")
 83     #t.begin_fill()
 84     t.speed(10)
 85     t.circle(80)
 86     #t.end_fill()
 87     t.clear()
 88     t.clearscreen()
 89     t.delay(0)
 90     
 91 
 92 def main():
 93     Screen()
 94     #Write()
 95     #while(True):
 96     #    Draw5()
 97     Draw4()
 98     #t.mainloop()    #stop
 99     #t.bye()         #close window
100     t.exitonclick()
101 
102 if __name__ == "__main__":                                                           
103      main()
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐