Главная страница

Разработка web-приложения. ЛР по ВТП для ВТ (Питон). Методические указания к лабораторным работам для студентов, обучающихся в бакалавриате по направлениям


Скачать 2.07 Mb.
НазваниеМетодические указания к лабораторным работам для студентов, обучающихся в бакалавриате по направлениям
АнкорРазработка web-приложения
Дата18.05.2022
Размер2.07 Mb.
Формат файлаdoc
Имя файлаЛР по ВТП для ВТ (Питон).doc
ТипМетодические указания
#536632
страница7 из 10
1   2   3   4   5   6   7   8   9   10

Построение графиков

Цель работы: приобретение практического опыта по построению графиков математических функций средствами канвы модуля tkinter с разным уровнем точности.
Методические указания

Канва формы является эффективным средством создания графиков, иллюстрирующих математические зависимости. Исходным для построения является массив значений, преобразуемый в график с помощью метода канвы PolyLine(<массив точек>), который подробно рассмотрен в лабораторных работах.

Поскольку график всегда строится на пространстве определенного размера, то обязательным является его масштабирование на основе определенных заранее коэффициентов масштабирования как по оси Х- mx, так и по Y - my. Предполагая, что размер пространства графика по вертикали равен Ну пикселей, коэффициент my определяется как

my = Ну/Rу,

где Rу - размах значений исходной функции, определяемый как

Rу = Ymax - Ymin,

Ymax - максимальное значение функции;

Ymin - минимальное значение функции.

При этом возможны три варианта расположения графика относительно оси Х (рис. 6.1).



В первом случае (а) Rу = Ymax, т.е. принимается, что Ymin = 0. Соответственно, ось Х отображается в самом низу графика.

Во втором случае (б) R = |Ymin|, т.е. принимается, что Ymax = 0. Соответственно, ось X отображается на самом верху графика.

Для третьего случая основная проблема - правильное расположение оси Х, для чего требуется знание my.

Соответственно, mх определяется как

mх = Нx/Rx,

где Нx - размер пространства графика по горизонтали в пикселях;

Rx - размах значений аргумента, определяемый как

Rx = Xк - Хн.

Xк - конечное значение аргумента;

Хн - начальное значение аргумента.

Обычно ось Y совпадает с Хн.

В дальнейшем, при создании графика, предполагается, что координаты его точек хт относительно начала координат всей формы (0Г) определяются как (рис. 2).

хт = mх* (х - Хн) + х

где х - очередное значение аргумента, а х - смещение начала локальной системы координат (координат графика с началом 0Л) относительно правой стороны формы в пикселях.

Координаты yт находятся по более сложному алгоритмы, поскольку, как отмечалось ранее, положительным для оси Y является направление вниз. Поэтому (рис. 6.2) координата конкретной точки находится как

ут = у - mу* у,

где у - очередное значение функции, а у - смещение начала локальной системы координат относительно верхней границы формы в пикселях

Значение у зависит от варианта графика (см. рис. 1):

- в первом случае должно обеспечиваться условие уНу;

- во втором у  0;

- для третьего случая уmу * Ymax.

Разметка координатных осей надписями и числовыми значениями может быть выполнена методом

<имя канвы>.create_text(<координаты опорной точки>, text="<отображаемый текст>", [<параметры шрифта>])




Рисование графика методом LineTo(x, y) с достаточно большим шагом аргумента приводит к созданию ломаной кривой, не отражающей истинного вида требуемой функции. Для повышения качества графика надо уменьшать шаг аргумента, сведя его в пределе к расчету координат каждого отдельного пикселя кривой, т.е. к

∆x = (Xк - Хн) / Нx.

Данный подход может привести к большому объему вычислений. Если не требуется абсолютная точность в отображении функции, то можно уменьшить объем таких вычислений путем сглаживания графика на основе использования параметра smooth=1 у пол илинии, т.е. в первом варианте графика этот параметр находится в нулевом значении (значение по умолчанию).

В данной работе требуется построить три варианта одного и того же графика. Для этого предлагается использовать виджет Notebook (многостраничный блокнот, рис. 6.3). Что требует предварительной загрузки расширения ttk, в котором находится этот виджет.

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

from tkinter import *

from tkinter import ttk

root = Tk()

root.title("Графики")

root.geometry('600x450')
tab_control = ttk.Notebook(root) #создается элемент управления вкладкой

tab1 = Frame(tab_control) # создается вкладка1

tab2 = Frame(tab_control) #создается вкладка2

tab_control.add(tab1, text='Первая') #текст ярлыка вкладки1

tab_control.add(tab2, text='Вторая') #текст ярлыка вкладки2

tab_control.pack(expand=1, fill='both')
c = Canvas(tab1, width=400, height=200, bg="white")

c.place(x = 20, y = 20)

root.mainloop()

Листание страниц блокнота осуществляется щелчками мыши по их ярлыкам.

Порядок выполнения лабораторной работы

      1. На основе графических примитивов создать масштабированный график с прорисовкой осей координат и их разметкой (на каждой оси должно быть не менее пяти числовых отсечек). При этом сам график должен максимально полно располагаться на заданном пространстве (т.е. длина осей Х и Y должна точно соответствовать заданным диапазонам: Xк - Хн, Ymax - Ymin). В программе явно определяются:

        • размах функции Ну;

        • вариант расположения графика (см. рис.1);

        • коэффициенты масштабирования mх и mу.

      2. График строится в трех вариантах на разных вкладках компонента Notebook:

  • с заданным шагом по оси Х;

  • с расчетом координат каждого пикселя графика;

  • с использованием сглаживания полилинии.

Индивидуальные задания для построения представлены ниже.

В(1)-1. На координатном пространстве размером 300х300 пикселей отобразить график заданной функции:

 ; 0 <= x <= 10; ∆x = 0.5;

В(1)-2. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; 0.1 <= x <= 1.8; ∆x = 0.2.

В(1-3. На координатном пространстве размером 500х300 пикселей отобразить график заданной функции:

 ; 5 <= x <= 10; ∆x = 0.4.

В(1)-4. На координатном пространстве размером 600х300 пикселей отобразить график заданной функции:

 ; -5 <= x <= -2; ∆x = 0.3.

В(1)-5. На координатном пространстве размером 400х200 пикселей отобразить график заданной функции:

 ; 2 <= x <= 9; ∆x = 0.5.

В(1)-6. На координатном пространстве размером 500х400 пикселей отобразить график заданной функции:

 ; 0.1 <= x <= 2.9; ∆x = 0.2.

В(1)-7. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 1 <= x <= 15; ∆x = 1.

В(1)-8. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; 0.5 <= x <= 5; ∆x = 0.3.

В(1)-9. На координатном пространстве размером 400х400 пикселей отобразить график заданной функции:

 ; -1 <= x <= 1.8; ∆x = 0.2.

В(1)-10. На координатном пространстве размером 600х600 пикселей отобразить график заданной функции:

 ; -5 <= x <= 5; ∆x = 0.5.

В(1)-11. На координатном пространстве размером 300х400 пикселей отобразить график заданной функции:

 ; -15 <= x <= 36; ∆x = 3.

В(1)-12. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; 0 <= x <= 1.8; ∆x = 0.1.

В(1)-13. На координатном пространстве размером 500х300 пикселей отобразить график заданной функции:

 ; -5 <= x <= 5; ∆x = 0.5.

В(1)-14. На координатном пространстве размером 300х600 пикселей отобразить график заданной функции:

 ; -3 <= x <= 3,5; ∆x = 0,5.

В(1)-15. На координатном пространстве размером 400х500 пикселей отобразить график заданной функции:

 ; -4 <= x <= 3; ∆x = 0,4.

В(1)-16. На координатном пространстве размером 400х600 пикселей отобразить график заданной функции:

 ; 0.9 <= x <= 2.7; ∆x = 0.2.

В(1)-17. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; 0.8 <= x <= 4.4; ∆x = 0.2.

В(1)-18. На координатном пространстве размером 300х300 пикселей отобразить график заданной функции:

 ; 0.9 <= x <= 4.1; ∆x = 0.2.

В(1)-19. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; -5 <= x <= 5; ∆x = 0.5.

В(1)-20. На координатном пространстве размером 500х300 пикселей отобразить график заданной функции:

 ; -3 <= x <= 6.5; ∆x = 0.5.

В(1)-21. На координатном пространстве размером 400х200 пикселей отобразить график заданной функции:

 ; -15 <= x <= 17; ∆x = 2.

В(1-22. На координатном пространстве размером 500х400 пикселей отобразить график заданной функции:

 ; -4<= x <= 5; ∆x = 0.5.

В(1)-23. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; -5 <= x <= 8.5; ∆x = 0.6.

В(1)-24. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; -4 <= x <= 7; ∆x = 0.4.

В(1)-25. На координатном пространстве размером 400х400 пикселей отобразить график заданной функции:

 ; -3 <= x <= 4.6; ∆x = 0.4.

В(1)-26. На координатном пространстве размером 600х600 пикселей отобразить график заданной функции:

 ; -13 <= x <= -1; ∆x = 1.

В(1)-27. На координатном пространстве размером 700х700 пикселей отобразить график заданной функции:

 ; 0 <= x <= 12; ∆x = 1.

В(1)-28. На координатном пространстве размером 800х800 пикселей отобразить график заданной функции:

 ; 5 <= x <= 15; ∆x = 0.4.

В(1)-29. На координатном пространстве размером 600х600 пикселей отобразить график заданной функции:

 ; -5 <= x <= -2; ∆x = 0.3

B(1)-30. На координатном пространстве размером 600х500 пикселей отобразить график заданной функции:

 ; -5 <= x <= 6.5; ∆x = 0.5.

B(1)-31. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 0.1 <= x <= 3.5; ∆x = 0.4.

B(1)-32. На координатном пространстве размером 600х500 пикселей отобразить график заданной функции:

 ; 0.5 <= x <= 6; ∆x = 0.4.

B(1)-33. На координатном пространстве размером 800х800 пикселей отобразить график заданной функции:

 ; 5 <= x <= 15; ∆x = 0.4.

B(1)-34. На координатном пространстве размером 600х600 пикселей отобразить график заданной функции:

 ; -5 <= x <= -2; ∆x = 0.3

B(1)-35. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; -5 <= x <= -0.2; ∆x = 0.3.

B(1)-36. На координатном пространстве размером 600х500 пикселей отобразить график заданной функции:

 ; -5 <= x <= 11; ∆x = 1.

B(1)-37. На координатном пространстве размером 600х600 пикселей отобразить график заданной функции:

 ; -9 <= x <= -1; ∆x = 0.5.

B(1)-38. На координатном пространстве размером 600х500 пикселей отобразить график заданной функции:

 ; -9 <= x <= 1; ∆x = 0.5.

B(1)-39. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; 0.1 <= x <= 1.8; ∆x = 0.2.

B(1)-40. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 1 <= x <= 15; ∆x = 1.

B(1)-41. На координатном пространстве размером 400х400 пикселей отобразить график заданной функции:

 ; -1 <= x <= 1.8; ∆x = 0.2.

B(1)-42. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; 0 <= x <= 1.8; ∆x = 0.1.

B(1)-43. На координатном пространстве размером 500х300 пикселей отобразить график заданной функции:

 ; -5 <= x <= 5; ∆x = 0.5.

B(1)-44. На координатном пространстве размером 400х500 пикселей отобразить график заданной функции:

 ; -4 <= x <= 3; ∆x = 0,4.

B(1)-45. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; 0.8 <= x <= 4.4; ∆x = 0.2.

B(1)-46. На координатном пространстве размером 300х300 пикселей отобразить график заданной функции:

 ; 0.9 <= x <= 4.1; ∆x = 0.2.

В(1)-47. На координатном пространстве размером 500х600 пикселей отобразить график заданной функции:

 ; 1.1 <= x <= 3.8; ∆x = 0.2.

В(1)-48. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 3 <= x <= 25; ∆x = 2.

В(1)-49. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; -1 <= x <= 2.8; ∆x = 0.3.

В(1)-50. На координатном пространстве размером 700х500 пикселей отобразить график заданной функции:

 ; 0.8 <= x <= 5.4; ∆x = 0.3.

В(1)-51. На координатном пространстве размером 500х300 пикселей отобразить график заданной функции:

  ; -3 <= x <= 6.5; ∆x = 0.6.

В(1)-52. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; -3 <= x <= 4.6; ∆x = 0.5.

В(1)-53. На координатном пространстве размером 500х700 пикселей отобразить график заданной функции:

 ; 0 <= x <= 12; ∆x = 0.8.

В(1)-54. На координатном пространстве размером 800х600 пикселей отобразить график заданной функции:

 ; 5 <= x <= 15; ∆x = 0.7.

B(1)-55. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 0.5 <= x <= 6; ∆x = 0.3.

B(1)-56. На координатном пространстве размером 500х400 пикселей отобразить график заданной функции:

 ; 0.1 <= x <= 2.8; ∆x = 0.3.

B(1)-57. На координатном пространстве размером 400х300 пикселей отобразить график заданной функции:

 ; -5 <= x <= 6.5; ∆x = 0.4.

B(1)-58. На координатном пространстве размером 500х500 пикселей отобразить график заданной функции:

 ; -2 <= x <= 1.8; ∆x = 0.3.

B(1)-59. На координатном пространстве размером 600х500 пикселей отобразить график заданной функции:

 ; -4 <= x <= 2; ∆x = 0,4.

В(1)-60. На координатном пространстве размером 700х400 пикселей отобразить график заданной функции:

 ; 2.1 <= x <= 3.8; ∆x = 0,1.

В(1)-61. На координатном пространстве размером 600х400 пикселей отобразить график заданной функции:

 ; 1 <= x <= 4.8; ∆x = 0.3.
Проверить корректность построения графика программой Microsoft Excel.
Содержание отчета:

  1. Титульный лист установленной формы;

  2. Задание на выполнение лабораторной работы;

  3. Структура проекта;

  4. Блок-схема начальной установки, блок-схемы процедур;

  5. Листинг программы.

  6. График, построенный средствами MS Excel.


Контрольные вопросы

1) Как определяется размах функции?

2) Почему требуется использовать коэффициенты масштабирования при создании графиков?

3) Почему координаты хт и ут точки определяются по разным алгоритмам?

4) Какие методы канвы можно использовать для прорисовки графика?

  1. Можно ли график сделать разноцветным (точки одного графика разного цвета)?

Лабораторная работа № 7
1   2   3   4   5   6   7   8   9   10


написать администратору сайта