Python-Turtle 简易教程

Python-Turtle 简易教程

Python中的Turtle库是自带的一个简单画图库,以tkinter为底层实现。我们通过控制初始位置为(0,0)的海龟进行移动,在屏幕上留下线条最终构成我们想要的图像。废话不多说,先上代码:

importturtle

importrandom

classMyTurtle(turtle.Turtle):

#画一个初始角度为x,边长为x的正方形

defdraw_square(self,x):

self.setheading(x)

foriinrange(4):

self.forward(x)

self.left(90)

return

#随机获取rgb模式下的颜色的三个参数

defget_color(self):

rgb= []

foriinrange(3):

rgb.append(random.randint(,255))

returnrgb

#设置画笔的颜色

defset_pen_color(self):

self.screen.colormode(255)

self.pencolor(self.get_color())

t=MyTurtle()

t.screen.bgcolor("black")

t.speed()

# 遍历1~1000°内的所有角度,随着初始角度增大,正方形的边长也增大

x=1

whilex

t.set_pen_color()

t.draw_square(x)

x=x+1

t.screen.mainloop()效果图

自己写的……嗯,还是不说了。只要设计好用基本图形(也可以自定义的基本图形)有规律的构成图案,用代码实现就很简单了。现在简单分析上面的代码:

importturtle

importrandom

classMyTurtle(turtle.Turtle):

...首先导入 我们要用的turtle 模块,以及生产随机数的random模块。自定义一个MyTurtle类,继承turtle模块中的Turtle类,在其中我们可以自定义一些方法。

#画一个初始角度为x,边长为x的正方形

defdraw_square(self,x):

#设置海龟方向

self.setheading(x)

foriinrange(4):

#使海龟向前移动x

self.forward(x)

#使海龟向逆时针旋转90°

self.left(90)

return设置海龟的初始方向为a,将屏幕看成一个二维坐标系,初始位置为(0,0),横向为x轴,纵向为y轴,a为当前方向与x轴的角度。相同作用函数:使海龟以当前方向向前爬行x距离。同作用函数:;反作用函数:||注:这三个函数不改变当前方向使海龟逆时针旋转x°。反作用函数:使海龟顺时针旋转90°

#随机获取rgb模式下的颜色的三个参数,以列表的形式返回

defget_color(self):

rgb= []

foriinrange(3):

rgb.append(random.randint(,255))

# rgb=[a,b,c]

returnrgb

#设置画笔的颜色

defset_pen_color(self):

#可以通过设置colormode,更改设置颜色的方式

self.screen.colormode(255)

# 设置画笔颜色

self.pencolor(self.get_color())cmode 为1 或者 255,随后rgb三元组的值必须在0~comde之间设置画笔颜色

color = None : 放回当前颜色

color = string: 通过字符串设置颜色 ,如 black、red……等

color = (r,g,b):通过rgb模式设置颜色

#实例化MyTurtle对象

t=MyTurtle()

t.screen.bgcolor("black")

t.speed()设置屏幕颜色,方式同s为0-10的整数或者速度字符串

None:返回当前速度

"fastest":0

"fast"::10

"normal"::6

"slow"::3

"slowest"::1

t.screen.mainloop()开始事件循环,循环语句为程序最后一条语句。同作用函数:

常用的函数简单总结

另附官方文档链接

https://docs.python.org/3/library/turtle.html?highlight=turtle#module-turtle

最后

谢谢关注!

——dknight

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180815G1WI4N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券