Мы уже использовали ранее цикл for для повторения действий определенное количество раз, когда управляли Черепашкой.
Воспользуемся им еще раз и порисуем.
Начнем с одного круга в случайном месте и нарисуем его по щелчку мыши:
from tkinter import *
from random import randrange as rnd, choice
root = Tk()
root.geometry('600x600+100+100')
canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)
def click(event):
canv.delete(ALL) # очистить холст
x = rnd(50,550) # выбрать случайные координаты
y = rnd(50,550)
r = 15 # радиус
canv.create_oval(x-r,y-r,x+r,y+r, fill = 'green') # нарисовать
canv.bind('<1>',click) # связать событие "Нажата левая кнопка мыши на холсте" с вызовом функции click
mainloop()
1. Нарисовать 20 кругов в случайных местах
Дана функция для рисования «домика»:
from tkinter import *
from random import randrange as rnd, choice
root = Tk()
root.geometry('600x600+100+100')
canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)
colors = ('gray','#F2BF45','#F3761F','#F9E784','#E2F112','#E3D385')
def click(event):
d(event.x,event.y,50)
def d(x,y,m):
floors = rnd(2,7)
canv.create_rectangle(x,y,x+m,y-m*(floors+1)/2, width=3, fill = 'white')
xx = x
for f in range(floors):
yy = y - m*f/2
color = choice(colors)
canv.create_rectangle(xx+m*0.2,yy-m*0.5,xx+m*0.4,yy-m*0.7, width=3,fill=color)
color = choice(colors)
canv.create_rectangle(xx+m*0.6,yy-m*0.5,xx+m*0.8,yy-m*0.7, width=3,fill=color)
canv.bind('<1>',click)
mainloop()
Дана функция для рисования звезды:
from tkinter import *
from random import randrange as rnd, choice
import math
root = Tk()
root.geometry('600x600+100+100')
canv = Canvas(bg='white')
canv.pack(fill=BOTH,expand=1)
colors = ['red','orange','yellow','green','cyan','blue','magenta','black','gray','lightgreen']
def click(event):
x = event.x
y = event.y
for ii in range(rnd(5)):
r1 = rnd(10,20)
r2 = r1*rnd(5,12)/12
star(x,y,r1,r2,choice(colors),choice(colors))
def star(x0=400,y0=300,r1=100,r2=30,col1='lightgreen',col2='green',da=9):
a1 = 0
a2 = 0
a = []
da = 360//da
for a1 in range(da//2,360+da,da):
y1 = y0 + r1*math.sin(a1*math.pi/180)
x1 = x0 + r1*math.cos(a1*math.pi/180)
a += [(x1,y1)]
y2 = y0 + r2*math.sin((a1+da//2)*math.pi/180)
x2 = x0 + r2*math.cos((a1+da//2)*math.pi/180)
a += [(x2,y2)]
canv.create_polygon(a, fill = col1, outline = col2, width = 2)
canv.bind('<1>',click)
mainloop()
10. Нарисовать много разноцветных звезд в случайных местах
11. Нарисовать таблицу (сетку) линиями

12. Нарисовать таблицу из разноцветных ячеек (рисовать квадратами)
13. Нарисовать таблицу с горизонтальными рядами одного цвета

14. Нарисовать таблицу с вертикальными рядами одного цвета

15. Нарисовать таблицу со случайными цифрами внутри

16. Нарисовать таблицу со случайно выбранными числами из последовательности: 2,4,8,16,32,64,128,256,512

17. Нарисовать таблицу со случайно выбранными числами из последовательности: 2,4,8,16,32,64,128,256,512. Каждому числу — свой цвет
11. Нарисовать таблицу (сетку) линиями

12. Нарисовать таблицу из разноцветных ячеек (рисовать квадратами)
13. Нарисовать таблицу с горизонтальными рядами одного цвета

14. Нарисовать таблицу с вертикальными рядами одного цвета

15. Нарисовать таблицу со случайными цифрами внутри

16. Нарисовать таблицу со случайно выбранными числами из последовательности: 2,4,8,16,32,64,128,256,512

17. Нарисовать таблицу со случайно выбранными числами из последовательности: 2,4,8,16,32,64,128,256,512. Каждому числу — свой цвет






