C. Create_polygon(100, 10, 20, 90, 180, 90)

Root.mainloop()

Результат выполнения программы представлен на рисунке 9. Обратите внимание на то, что при выполнении метода.create_rectangle() с минимальным количеством аргументов получается только контур черного цвета, а при выполнении метода.create_polygon()  с минимальным количеством аргументов получается заливка контура черным цветом.

Рисунок 9

Поэтому для того, чтобы получить только контур треугольника необходимо добавить еще три аргумента:

c.create_polygon(100, 10, 20, 90, 180, 90, outline = 'black', fil l = 'white')

Результат выполнения программы с изменениями представлен на рисунке 10.

Рисунок 10

8.4 Метод.create_oval():

Метод create_oval() создает эллипсы. При этом задаются координаты гипотетического прямоугольника, описывающего эллипс. Если нужно получить круг, то соответственно описываемый прямоугольник должен быть квадратом. Минимальное количество аргументов четыре, две координаты верхнего левого угла описанного квадрата и две координаты нижнего правого угла описанного квадрата. Например, для построения окружности с радиусом 75 пикселей в центре холста программа будет выглядеть так:

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()

C.create_ oval (25, 25, 175, 175)

Root.mainloop()

Обратите внимание, что при минимальном количестве аргументов получается только контур толщиной в 1 пиксел (Рисунок 11). Для изменения толщины контура, его цвета, выполнения заливки контура и выделения объекта при наведении на него мышкой необходимо использовать дополнительные аргументы такие же, как для метода.create_rectangle().

Рисунок 11

8.5 Метод. create_arc():

Более сложные фигуры на основе окружности или овала получаются при использовании метода create_arc(). Основными аргументами являются те же четыре аргумента, что и для построения окружности или овала, которые определяют две вершины описанного квадрата или прямоугольника. Аргумент  start определяет начальное значение радиус-вектора в градусах. Если start = 0, то радиус-вектор направлен из центра вправо. Аргумент extent определяет конечное значение радиус-вектора, величина которого определяет угол поворота против часовой стрелки от нулевого значения. Для поворота по часовой стрелке – знак минус. Это основные аргументы.

Например, для построения сектора с радиусом 75 пикселей в центре холста и углом в 90 градусов, который расположен в первой четверти окружности, показанной на рисунке 11, программа будет выглядеть так:

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()

c.create_ arc (25, 25, 175, 175, start = 0, extent = 90)

Root.mainloop()

Результат выполнения программы представлен на рисунке 12 слева. Обратите внимание на то, что при выполнении метода.create_ arc () с минимальным количеством аргументов получается только контур черного цвета. Для заливки сектора необходимо добавить аргумент fill = 'red', которы    определяет цвет заливки, в данном случае красный. Результат с добавленным аргументом fill = 'red' показан на рисунке 12 справа.

Рисунок 12

Используя аргумент style = CHORD можно построить сегмент (рисунок 13 слева). Используя аргумент style = ARC можно построить дугу толщиной в 5пикселей, если задать аргумент и аргумент outline = 'red' (рисунок 13 справа).

Рисунок 13

8.6 Метод. create_text():

Для размещения на холсте пояснительных надписей используется метод create_text. Например, для создания подписи к правому рисунку 13 необходимо в текст программы добавить еще одну строчку, выделенную оранжевым цветом. В этом методе первые два аргумента определяют координаты текста. Первая координата –х, вторая – у. При этом надо иметь ввиду, что введенные координаты текста будут соответствовать центральной точке надписи. Поэтому, чтобы разместить надпись в углу холста используют дополнительный аргумент «anchor=NE». После знака равенства записывают первые буквы сторон света.

Результат показан на рисунке 14 слева. Для того, чтобы увеличить размер шрифта можно использовать дополнительный аргумент font="Verdana 14". Результат показан на рисунке 14 справа.

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()

c.create_arc(25, 25, 175, 175,start = 0, extent = 90,

        outline = 'red', style = ARC, width = 5)

c.create_text(130, 70, text = 'дуга')

Root.mainloop()

Рисунок 14


Вопросы самоконтроля

1. Напишите название класса, с помощью которого создаются объекты-холсты.

2. Напишите название библиотеки, где находятся виджеты графического интерфейса пользователя.

3. Где находится начало координат холста для размещения графических объектов?

4. В каких единицах измерения задаются размеры холста?

5. Напишите название метода, с помощью которого создаются отрезки.

6. Какие аргументы являются обязательными для метода, с помощью которого создаются отрезки, для чего они нужны и какое их количество?

7. Напишите название аргумента, который задает толщину отрезка.

8. Напишите название аргумента, который формирует стрелку в конце отрезка.

9. Напишите название аргумента, который формирует стрелку в начале отрезка.

10. Какое количество параметров аргумента, который формирует стрелку, и каково назначение каждого из этих параметров?

11. Напишите название аргумента, который задает цвет отрезка.

12. Напишите название аргумента, который изменяет цвет отрезка при наведении на него мышкой.

13. Напишите название аргумента, который создает отрезок в виде пунктирной линии.

14. Напишите название метода, с помощью которого создаются прямоугольники.

15. Какие аргументы являются обязательными для метода, с помощью которого создаются прямоугольники, для чего они нужны и какое их количество?

16. Что определяет первый аргумент, с помощью которого создаются прямоугольники?

17. Что определяет второй аргумент, с помощью которого создаются прямоугольники?

18. Что определяет третий аргумент, с помощью которого создаются прямоугольники?

19. Что определяет четвертый аргумент, с помощью которого создаются прямоугольники?

20. Напишите название аргумента, который задает толщину контура прямоугольника.

21. Напишите название аргумента, который задает цвет контура прямоугольника.

22. Напишите название аргумента, который делает контур прямоугольника в виде пунктирной линии при наведении на него мышкой.

23. Напишите название аргумента, который изменяет цвет контура прямоугольника при наведении на него мышкой.

24. Напишите название аргумента, который задает цвет заливки прямоугольника.

25. Напишите название метода, с помощью которого создаются многоугольники с произвольным количеством вершин.

26. Какие аргументы являются обязательными для метода, с помощью которого создаются многоугольники с произвольным количеством вершин, и от чего зависит их количество.

27. Как будет выглядеть треугольник, созданный методом для многоугольника с произвольным количеством вершин, при использовании минимального количества аргументов.

28. Напишите название аргумента, который задает цвет контура многоугольника с произвольным количеством вершин.

29. Напишите название аргумента, который позволяет задать цвет заливки многоугольника с произвольным количеством вершин.

30. Напишите название аргумента, который задает толщину контура многоугольника с произвольным количеством вершин.

31. Напишите название метода, с помощью которого создаются эллипсы и окружности.

32. Какие аргументы являются обязательными для метода, с помощью которого создаются эллипсы и окружности, для чего они нужны и какое их количество?

33. Напишите название аргумента, который задает цвет контура эллипса и окружности.

34. Напишите название аргумента, который задает толщину контура эллипса и окружности.

35. Напишите название аргумента, который задает цвет заливки эллипса и окружности.

36. Напишите название аргумента, который изменяет цвет контура эллипса и окружности при наведении на него мышкой.

37. Напишите название аргумента, который изменяет цвет заливки эллипса и окружности при наведении на него мышкой.

38. Напишите название метода, с помощью которого создаются сектора и сегменты.

39. Какие аргументы являются обязательными для метода, с помощью которого создаются сектора и сегменты.

40. Напишите название аргумента, который задает цвет заливки сектора и сегмента.

41. Напишите название аргумента, который задает цвет дуги.

42. Напишите название метода, с помощью которого можно сделать подпись к рисунку.

43. Какие аргументы являются обязательными для метода, с помощью которого создаются подпись к рисунку?

44. Какие аргументы являются дополнительным для метода для увеличения размера шрифта на подписи к рисунку?


Практические задания

Все практические задания предусматривают индивидуальное задание для каждого студента, которое определяется порядковым номером студента по списку и номером группы. В задании номер студента по списку обозначен переменной N, а номер группы переменной G. (Для группы 1003 G = 1, Для группы 1004 G = 2). Если в задании сказано,  что координата x = 10 +(G * N), то для студента с порядковым номером по списку 12 из второй группы х = 10 + (12 * 2) = 34.

Цвет фигуры зависит от последней цифры в номере по списку:

1 – Red, 2 – Orange, 3 – Yellow. 4- Green, 5 – Turquoise, 6 – Indigo,

 7 – Purple, 8 – Brown, 9 – Pink, 0 – LightGreen.

1. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите стрелку с начальными координатами х1 = 10 +(G * N), у1 = 10 +(G * N) и конечными координатами х2 = 400 - (G * N), у2 = 400 - (G * N). Для студентов с четным номером по списку стрелка должна быть на конце отрезка.  Для студентов с нечетным номером по списку стрелка должна быть в начале отрезка. Толщина отрезка – 6 пикселей. Внутренняя длина стрелки – 12 пикселей, наружная длина стрелки – 24 пиксела, ширина стрелки 10 пикселей.

 Если студент с порядковым номером 35 из группы 1004 правильно напишет программу, то при запуске этой программы на компьютере результат должен выглядеть, как показано на рисунке 15

Рисунок 15

 

2. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите окружность с центром, имеющим координаты х = 200 + (G * N), y = 200 + (G * N). Диаметр окружности – 200 пикселей, контур черного цвета толщиной 4 пиксела. Цвет заливки должен соответствовать номеру по списку. При наведении мышкой на окружность цвет заливки должен изменяться на другой цвет, который соответствует предыдущему номеру студента по списку.

   Если студент с порядковым номером 38 из группы 1004 правильно напишет программу и запустит ее на компьютере, то результат в исходном состоянии будет выглядеть, как показано на рисунке 16 слева, и как на рисунке 16 справа при наведении на окружность мышкой.

Рисунок 16

3. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите треугольник с координатами вершин: х1 = 200 + (G * N), y1 = 10 + (G * N),

х2 = 20 + (G * N), y2 = 100 + (G * N),

х3 = 200 + (G * N), y3 = 100 + (G * N).

Цвет заливки должен соответствовать номеру по списку. При наведении мышкой на треугольник цвет заливки должен изменяться на другой цвет, который соответствует предыдущему номеру студента по списку.

Если студент с порядковым номером 40 из группы 1004 правильно напишет программу и запустит ее на компьютере, то результат в исходном состоянии будет выглядеть, как показано на рисунке 17 слева, и как на рисунке 17 справа при наведении на треугольник мышкой.

 

Рисунок 17

4. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите прямоугольник с линией рамки толщиной 10 пикселов черного цвета с координатами вершин:

х1 = 20 + (G * N), y1 = 20 + (G * N),

х2 = 300 + (G * N), y2 = 200 + (G * N).

При наведении мышкой на прямоугольник линия рамки должна становиться пунктирной, а цвет заливки меняться на другой цвет, который соответствует предыдущему номеру студента по списку. Если студент из группы 1004 с порядковым номером по списку - 40 правильно напишет программу, то при запуске этой программы на компьютере результат должен выглядеть, как показано на рисунке 18 слева, а при наведении мышкой на прямоугольник, как показано на рисунке 18 справа.

 

5. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите сектор с центром в центре холста. Радиус сектора должен быть r = (50 * G) + (G * N). Угловая координата начального радиус-вектора должна соответствовать номеру по списку (угол задается в градусах). Угол поворота радиус-вектора должен быть 90º против часовой стрелки. Заливка должна быть цвета, который соответствует вашему номеру по списку.

Если студент из группы 1004 с порядковым номером по списку - 35 правильно напишет программу, то при запуске этой программы на компьютере результат должен выглядеть, как показано на рисунке 19.

Рисунок 18

Рисунок 19

6. Составьте текст программы на алгоритмическом языке Pithon с использованием библиотеки tkinter, которая создает холст размером 400 х 400. На холсте поместите дугу. Координаты центра дуги:

х = 200, у = 300. Радиус дуги должен быть r = (50 * G) + (G * N). Угловая координата начального радиус-вектора дуги должна соответствовать номеру по списку (угол задается в градусах). Угол поворота радиус-вектора дуги должен быть 90º против часовой стрелки. Цвет дуги соответствует номеру студента по списку.

На этот же холст необходимо поместить текст, расположенный в верхнем левом углу следующего содержания:

Фамилия студента

Имя студента

группа 100?

Размер шрифта должен быть максимально крупным, но при этом текст не должен заходить на дугу.

 

Если студент из группы 1004 с порядковым номером по списку – 31 правильно напишет программу, то при запуске этой программы на компьютере результат должен выглядеть, как показано на рисунке 20.

Рисунок 20

Рекомендованная литература:

1. Лаборатория линуксоида. Tkinter. Программирование GUI на Python. Canvas [Электронный рессурс] URL: https://younglinux.info/tkinter/canvas.php (Дата обращения 10.04.2020).

2. Курс по библиотеке Tkinter языка Python [Электронный рессурс] URL: http://ru.wikiversity.nym.su/wiki/%D0%9A%D1%83%D1%80%D1%81_%D0%BF%D0%BE_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B5_Tkinter_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_Python#BitmapImage (Дата обращения 10.04.2020).

 

Особенность заданий состоит в том, что они носят индивидуальный характер для каждого студента в соответствии с порядковым номером по журналу.

Поэтому прошу при рассылке задания студентам приложить список групп.

Оценивать результаты, которые будут отправлены на почту я намерен следующим образом:

5 – студент правильно ответил на все 44 вопроса и правильно составил все программы и 6 заданий,

4 – Студент правильно ответил на 39 вопросов и допустил ошибки в одном из шести заданий,

3 - – Студент правильно ответил на 30 вопросов и допустил ошибки в двух из шести заданий,

2 - Студент правильно ответил меньше, чем на 30 вопросов и допустил ошибки в трех и более из шести заданий.

Также оценка 2 (неуд) будет выставлена также тем, кто пришлет ответы не по своему варианту.

Для мотивации студентов, выполнить работу дома и прислать ответы по электронной почте, необходимо им пояснить, что выполняя работу дома, студент на законном основании может пользоваться «шпаргалкой» в виде теоретического материала. Те студенты, которые не пришлют ответов или получат оценку 2 (неуд) должны будут выполнить эти задания на зачете и при этом у них не будет возможности пользоваться «шпаргалками».

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: