random模块中提供一个叫randrange函数。该函数的作用是:当我们给这个函数传入一个数字,它会返回一个在0和这个数字之间的随机整数。例如,调用randrange(10)将会返回一个0~9之间的数字,randrange(100)将会返回一个0~99之间的数字。
from tkinter import* import random tk = Tk() canvas = Canvas(tk,width=400,height=400) canvas.pack() def random_rectangle(width,height): x1 = random.randrange(width) ##建立变量x1,设定它的值是从0到参数width之间的一个随机数 y1 = random.randrange(height) x2 = x1 + random.randrange(width) ##建立变量x2,它是由前面计算得到的x1加上一个随机数 y2 = y1 + random.randrange(height) canvas.create_rectangle(x1,y1,x2,y2) x in range(0,100): ##用for循环画100个随机长方形 random_rectangle(400,400)
很多的矩形(有没有感觉像现代艺术作品呢,嘿嘿)
4,设置颜色
改一下 random_rectangle函数,传入一个额外的参数(fill_color)来指定矩形的颜色。
from tkinter import* import random tk = Tk() canvas = Canvas(tk,width=400,height=400) canvas.pack() def random_rectangle(width,height,fill_color): x1 = random.randrange(width) ##建立变量x1,设定它的值是从0到参数width之间的一个随机数 y1 = random.randrange(height) x2 = x1 + random.randrange(width) ##建立变量x2,它是由前面计算得到的x1加上一个随机数 y2 = y1 + random.randrange(height) canvas.create_rectangle(x1,y1,x2,y2,fill=fill_color) ##fill_color作为一个参数,指定画出矩形所需要的颜色 random_rectangle(400,400,) random_rectangle(400,400,) random_rectangle(400,400,) random_rectangle(400,400,) random_rectangle(400,400,) random_rectangle(400,400,) ##粉红色 random_rectangle(400,400,) ##紫色 random_rectangle(400,400,) ##紫罗兰色 random_rectangle(400,400,) ##品红色 random_rectangle(400,400,) ##蓝绿色
带颜色的矩形
思考:如果我们想定制一个和有命名的颜色不完全一样的颜色怎么办?
六、画圆弧
圆弧是圆周的一段,或者说是一种曲线,但是为了用tkinter画出一个圆弧,我们需要用create_arc函数在一个矩形中作图:
>>> from tkinter import* >>> tk = Tk() >>> canvas = Canvas(tk,width=400,height=400) >>> canvas.pack() >>> canvas.create_arc(10,10,200,100,extent=180,style=ARC)
圆弧的左上角坐标设置为(10,10),右下角坐标是(200,100)。extent 是用来指定圆弧的角度。
下面我们将在页面上自上而下画出几个不同的圆弧,这样就可以看到对于create_arc函数使用不同角度的效果了:
>>> canvas.create_arc(10,10,200,80,extent=45,style=ARC) >>> canvas.create_arc(10,80,200,160,extent=90,style=ARC) >>> canvas.create_arc(10,160,200,240,extent=135,style=ARC) >>> canvas.create_arc(10,240,200,320,extent=180,style=ARC) >>> canvas.create_arc(10,320,200,400,extent=359,style=ARC)
注:在画最后一个圈时我们用了359度而不是360度,因为tkinter会把360度当成0度,如果用360度的话就什么也画不出来了。
七、画多边形
当我们用tkinter来画多边形时,你要为多边形的每个点提供坐标。下面是三角形的方法: