Лабораторная работа № 6 Построение графиков
Оценка 4.9

Лабораторная работа № 6 Построение графиков

Оценка 4.9
docx
16.11.2021
Лабораторная работа № 6 Построение графиков
Л2-001694.docx

Лабораторная работа № 6

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

Задание: На основе приложения Satm5 создать приложение Satm6 в котором:

·        результаты расчетов представляются в виде графиков

ü зависимости давления атмосферы от высоты - форма 3,

ü зависимости плотности атмосферы от высоты - форма 4,

ü зависимостей температуры воздуха и скорости звука от высоты - форма 5.

·        вывод формы 3 происходит после нажатия  на кнопку “Graph”, расположенной на форме frmSa.

Форма 3 должна обеспечивать:

·        вывод графика на весь экран,

·        размещение командной кнопки “Next” для вызова формы 4 и закрытия формы 3;

·        размещение командной кнопки “Exit” для вызова формы 1 и закрытия формы 3;

·        размещение командной кнопки “Cancel” для выхода из программы;

Форма 4 должна обеспечивать:

·        вывод графика на весь экран,

·        размещение командной кнопки “Next” для вызова формы 5 и закрытия формы 4;

·        размещение командной кнопки “Exit” для вызова формы 3 и закрытия формы 4;

·        размещение командной кнопки “Cancel” для выхода из программы;

·        фиксированные размеры формы;

Форма 5 должна обеспечивать:

·        вывод графика на весь экран,

·        фиксированные размеры формы;

·        размещение командной кнопки “Exit” для возврата к форме 4 и закрытия формы 5;

·        размещение командной кнопки “Cancel” для выхода из программы;

·        размещение командной кнопки “Next” для вызова формы 1;

 

В ходе работы необходимо

изучить:

·        системы координат графических компонентов VB;

·        методы и свойства графических компонентов VB, необходимые  для построения простейших изображений и графиков функций;

научиться:

·        включать в проект графический компонент Picture Box и настраивать его свойства для вывода в него графика функции;

·        программировать построение в Picture Box графика функции одной переменной по координатам отдельных точек графика, заданных массивом.

 

Теоретическая часть

 

1.1 Системы координат компонентов VB

 

В VB можно строить изображения на следующих компонентах интерфейса:

·        форма Form,

·        графическое окно Picture Box.

Каждая графическая операция с этими компонентами использует систему координат области рисования. Система координат определяет местоположение точки в виде координат (x,y) ,  где x – смещение точки по горизонтали, а y – смещение точки по вертикали.   По умолчанию отсчет координаты x идет слева направо, а координаты y  - сверху вниз

Начало отсчета x и y  а также единицы измерения по x и y задаются свойствами компонента, настраиваемыми в окне свойств на этапе проектирования интерфейса программы.

Свойство ScaleMode  задает единицы измерения и может принимать следующие значения

Значение

Единицы измерения

0 – User

Определяются пользователем путем задания координат верхнего левого угла, ширины и высоты поля рисования (свойства ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight – см. ниже)

1 – Twip

Твипы. Это единицы по умолчанию. В одном дюйме 1440 твипов.

2 – Point

Пункты. В одном дюйме 72  пункта.

3 – Pixel

Пикселы – точки телевизионного растра. Число пикселов на дюйм зависит от разрешения монитора и его размера.

4 – Character

Символы. Один символ имеет высоту 1/6 дюйма и ширину 1/12 дюйма.

5 – Inch

Дюймы.

6 – Millimeter

Миллиметры.

7 – Centimeter

Сантиметры.

Свойство ScaleLeft задает координату x верхнего левого угла поля рисования.

Свойство ScaleTopt задает координату y верхнего левого угла поля рисования.

Свойство ScaleWidth задает ширину поля рисования  и измеряется слева направо.

Свойство ScaleHight задает высоту поля рисования и измеряется сверху вниз.

Свойства ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight могут принимать любые значения, в том числе дробные и отрицательные.Например, если необходимо, чтобы графическое окно Picture1 для вывода графика функции y=sin(x) имело координаты поля рисования по x от 0 до 6,28 и по y  от –1 до +1 нужно установить свойства:

Picture1.ScaleLeft=0

Picture1.ScaleTop=+1

Picture1.ScaleWidth=6,28

Picture1.ScaleHight=-2

По умолчанию левый верхний угол имеет координаты (0,0), а ширина и высота поля рисования вычисляются автоматически в твипсах по размерам компонента на экране.


 

1.2. Управление цветом

 

Поле рисования имеет 2 основных цвета, заданных соответствующими свойствами:

BackColor – цвет фона, используется при очистке области рисования.

ForeColor  - цвет переднего плана, используется при рисовании. Для рисования конкретным цветом предварительно нужно установить этот цвет на переднем плане, а затем вызывать методы рисования этим цветом.

Значение цвета задается встроенными константами VB, например: vbRed    - красный, vbGreen – зеленый и т.д.

Для установки цвета используется операция присваивания, например, чтобы нарисовать в графическом окне Picture1 линию  белого цвета на желтом фоне необходимо запрограммировать

Picture1.BackColor=vbYellow

Picture1.Cls

Picture1.ForeColor=vbWhite

Pictire.Line (0,0)-(100,100)

 

 

1.3. Графические методы

 

Метод

Описание

Cls

Стирает все изображение в поле рисования

Pset

Рисует одну точку (пиксел) заданным цветом

Point

Возвращает цвет заданной точки (пиксела)

Line

Рисует линию, контурный или закрашенный прямоугольник

Circle

Рисует окружность, эллипс или дугу

PaintPicture

Выводит картинку из массива данных в произвольном месте

 

Методом Cls можно в любой момент очистить поле рисования, которое закрашивается цветом фона (свойство BackColor):

[object].Cls

Без параметра object метод очищает всю экранную форму, в коде которой он исполняется.

Например, очистка поля рисования графического окна Picture1 с закраской в черный цвет:

Picture1.BackColor=vbBlack

Picture1.Cls

 

Метод Pset устанавливает цвет пиксела в заданной точке:

[object].Pset (x,y) [, color]

Параметры x и y  могут быть целыми, дробными или числовым выражением любой сложности.

Если цвет color не задан, по умолчанию используется цвет переднего плана (свойство ForeColor).

Например, нарисовать точку голубого цвета  с координатами x=100, y=200 в графическом окне Picture1:

Picture1.Pset  (100,200), vbBlue

Метод  Line чертит линию между двумя точками с координатами (x1,y1) и (x2,y2) :

Line (x1,y1) – (x2,y2) [, color]

Или из предыдущей точки черчения в заданную точку с координатами (x2,y2):

Line  – (x2,y2) [, color]

Параметры x1,y1,x2,y2  могут быть целыми, дробными или числовым выражением любой сложности.

Если цвет color не задан, по умолчанию используется цвет переднего плана (свойство ForeColor).

Например, нарисовать линию синего цвета  между точками (x=100, y=200) и (x=300, y=400) в графическом окне Picture1:

Picture1.Line  (100,200) – (300,400) , vbCyan

 

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

2.1 Откройте проект Satm5.

2.2 Расположите ЭУ на форме frmSa:

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmSa,

·        расположите на форме командную кнопку (по умолчанию будет создана кнопка с именем Command1),

·        задайте ей свойства согласно таблице 2.1:

Таблица 2.1

Объект

Свойство

Значение

Command1

Name

CmdGrph

 

Caption

&Graph

 

Font**

Arial, (полужирный) Bold,12

 

MousePoiter

NoDrop

 

TabIndex

6

2.3 Добавьте в проект новую форму – форму 3:

·        перейдите в окно Project Explorer и убедитесь в том, что активна форма frmSa,

·        выберите  в строке меню системы программирования  пункт Project,

·        выполните команду Add Form. В появившемся окне Add Form  на закладке New предлагается по умолчанию Form,

·        в окне Add Form нажмите кнопку Open. Обратите внимание на то, что в окне проекта появилась новая форма, которая по умолчанию называется Form1.

2.4 Для добавления в проект формы 4 и формы5 повторите п. 2.2.

2.5 Задайте свойства формам Form1, Form2 и Form3 согласно таблице 2.2. Переход от одной форме к другой осуществляйте двойным щелчком  на пиктограмме формы в окне Project Explorer.

Таблица 2.2

Объект

Свойство

Значение

Form1, Form3, Form2

Height

8340

 

Width

11760

 

Top

0

 

BoderStyle

1- Fixed Single

Form1

Name

frmGrph1

 

Caption

График зависимости  давления от высоты

Form2

Name

frmGrph2

 

Caption

График зависимости плотности от высоты

Form3

Name

frmGrph3

 

Caption

Графики зависимости температуры и скорости  звука от высоты

 

2.6 Задайте пути для сохранения проекта в своей личной папке:

·        перейдите в окно Project Explorer и убедитесь в том, что активна форма  с именем frmSa,

·        откройте меню File,

·        в открывшемся диалоговом окне Save File As :

ü убедитесь, что открыта ваша личная папка  на диске Z:,

ü укажите имя файла satm6-1, нажмите на кнопку  “Save“,

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmTabl,

ü сохраните форму с именем satm6-2,

·        аналогичным образом сохраните формы frmGrph1, frmGrph2 и frmGrph3 соответственно с именами satm6-3 satm6-4 satm6-5.

·        откройте меню File,

·        выполните команду Save Project As,

·        в открывшемся диалоговом окне Save Project As введите имя файла satm6 (по умолчанию оно будет satm5) и нажмите на кнопку  “Save

 

2.7 Расположите ЭУ на форме frmGrph1:

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmGrph1,

·        расположите на форме командные кнопки Command1, Command2 и Command3,

·        задайте  им свойства согласно таблице 2.3:

Таблица 2.3

Объект

Свойство

Значение

Группа командных кнопок

Font**

Arial, (полужирный) Bold,11

 

MousePoiter

NoDrop

Command1

Name

CmdCnl

 

Caption

&Cancel

 

Cancel

True

 

TabIndex

2

Command2

Name

CmdNxt

 

Default

True

 

Caption

&Next

 

TabIndex

0

Command3

Name

CmdExt

 

Caption

&Exit

 

TabIndex

1

 

2.7 Расположите ЭУ на формах frmGrph2 и frmGrph3

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmGrph2,

·        выполните п. 2.6,

·        повторите предыдущие пункты с соответствующими изменениями.

 

2.8 Создайте предварительный код для обработки нажатия кнопки Graph на форме frmSa:

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmSa,

·        выполните двойной щелчек на кнопке Graph

·        введите в тело процедуры Private Sub cmdGrph_Click() текст

FrmGrph1.Show

Me.Hide

 

2.9 Создайте коды для обработки нажатий кнопок на форме frmGrph1:

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmGrph1,

·        выполните двойной щелчек на кнопке Cancel

·        введите в тело процедуры Private Sub cmdCnl_Click() текст

End

·        выполните двойной щелчек на кнопке Next

·        введите в тело процедуры Private Sub cmdNxt_Click() текст

FrmGrph2.Show

Me.Hide

·        выполните двойной щелчек на кнопке Exit

·        введите в тело процедуры Private Sub cmdExt_Click() текст

frmSa.Show

Me.Hide

2.10 Создайте коды для обработки нажатий кнопок на формах frmGrph2  и frmGrph3 (повторите п 2.8  с соответствующими изменениями).

 

2.11 Протестируйте программу с пустыми формами

·        запустите программу на выполнение в среде VB5.0,

·        установите курсор на кнопку Graph и нажмите клавишу Enter – вызывается форма frmGrph1,

·        установите курсор на кнопку Next и нажмите левую клавишу мыши. На экран выводится форма frmGrph2,

·        установите курсор на кнопку Next и нажмите клавишу Enter. Форма frmGrph3 становится активной.

·        нажмите клавишу Esc. Обратите внимание на то, что происходит выход из программы с удалением всех форм с экрана.

 

2.11 Разместите на форме frmGrph1 графическое окно для вывода графика зависимости давления от высоты (высота – по оси Y снизу вверх от 0 до 15000 м, давление - по оси X слева направо от 10000 до 110000 паскалей).

·        перейдите в окно Project Explorer и сделайте активной форму frmGrph1,

·        откройте форму frmGrph1 кнопкой View Object на панели инструментов Object Explorer (вторая слева),

·        щелчком мыши выберите компонент PictureBox  из палитры компонентов Toolbox (вторая слева кнопка в верхнем ряду палитры),

·        при нажатой кнопке мыши нарисуйте на форме frmGrph1 прямоугольник графического окна максимально возможного размера,

·        задайте свойства графического окна в соответствии с таблицей:

Свойство

Значение

Name

PctP_h

ScaleMode

0 – User

ScaleLeft

10000

ScaleTop

15000

ScaleWidth

100000

ScaleHight

-15000

AutoRedraw

True

·        разместите вокруг графического окна надписи с указанием граничных значений высоты и давления:

·        слева от левой вертикальной рамки внизу надпись «0 км»

·        слева от левой вертикальной рамки вверху надпись «15 км»,

·        снизу под нижней горизонтальной рамкой слева надпись «10000 па»,

·        снизу под нижней горизонтальной рамкой справа надпись «110000 па»,

(точное положение, размер надписей и их шрифт выбрать самостоятельно, по аналогии с графиками функций, приведенными в литературе),

·        сохраните обновленную форму кнопкой Save на панели инструментов VB.

 

2.12 Разместите на форме frmGrph2 графическое окно для вывода графика зависимости плотности от высоты (высота – по оси Y снизу вверх от 0 до 15000 м, плотность - по оси X слева направо от 0,2 до 1,25).

·        перейдите в окно Project Explorer, сделайте активной форму frmGrph2, и откройте ее,

·        выберите компонент PictureBox  из палитры компонентов Toolbox и при нажатой кнопке мыши нарисуйте на форме frmGrph2 прямоугольник графического окна максимально возможного размера,

·        задайте свойства графического окна в соответствии с таблицей:

 

Свойство

Значение

Name

PctR_h

ScaleMode

0 – User

ScaleLeft

0,2

ScaleTop

15000

ScaleWidth

1,05

ScaleHight

-15000

AutoRedraw

True

 

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

·        слева от левой вертикальной рамки внизу надпись «0 км»

·        слева от левой вертикальной рамки вверху надпись «15 км»,

·        снизу под нижней горизонтальной рамкой слева надпись «0,2»,

·        снизу под нижней горизонтальной рамки справа надпись «1,25»,

(точное положение, размер надписей и их шрифт выбрать самостоятельно, по аналогии с графиками функций, приведенными в литературе),

·        сохраните обновленную форму кнопкой Save на панели инструментов VB.

 

2.13 Разместите на форме frmGrph3 графическое окно для вывода графиков зависимостей температуры и скорости звука от высоты  в одной системе координат (высота – по оси Y снизу вверх от 0 до 15000 м, скорость/температура - по оси X слева направо от 200 до 350).

·        перейдите в окно Project Explorer, сделайте активной форму frmGrph3, и откройте ее,

·        разместите компонент PictureBox  из палитры компонентов Toolbox на форме frmGrph3 с максимально возможным размером,

·        задайте свойства графического окна в соответствии с таблицей:

 

 

Свойство

Значение

Name

PctA_h

ScaleMode

0 – User

ScaleLeft

200

ScaleTop

15000

ScaleWidth

150

ScaleHight

-15000

AutoRedraw

True

·        разместите вокруг графического окна надписи с указанием граничных значений высоты и скорости/температуры:

·        слева от левой вертикальной рамки внизу надпись «0 км»

·        слева от левой вертикальной рамки вверху надпись «15 км»,

·        снизу под нижней горизонтальной рамкой слева надпись «200»,

·        снизу под нижней горизонтальной рамки справа надпись «350»,

(точное положение, размер надписей и их шрифт выбрать самостоятельно, по аналогии с графиками функций, приведенными в литературе),

·        сохраните обновленную форму кнопкой Save на панели инструментов VB.

 

2.14 Протестируйте программу с пустыми графиками

·        запустите программу на выполнение в среде VB5.0,

·        установите курсор на кнопку Graph и нажмите клавишу Enter – вызывается форма frmGrph1 с полем для рисования графика и надписями о граничных значениях высоты и давления,

·        установите курсор на кнопку Next и нажмите левую клавишу мышки. На экран выводится форма frmGrph2 с полем для рисования графика и надписями о граничных значениях высоты и плотности,

·        установите курсор на кнопку Next и нажмите клавишу Enter. На экран выводится форма frmGrph3 с полем для рисования графика и надписями о граничных значениях высоты и скорости звука/температуры,

·        нажмите клавишу Esc. Обратите внимание на то, что происходит выход из программы с удалением всех форм с экрана.

 

2.15 Разработайте алгоритм и запрограммируйте построение графиков. Исходные данные для построения берутся из массива gsngSa( ), сформированного в программе предыдущей лабораторной работы после расчета таблицы (при нажатии на кнопку Table на форме frmSa. Расположение данных в этом массиве:

 gsngSa( 1,к) – к-е значение высоты

gsngSa( 2,к) –  значение давления на к-й высоте

gsngSa( 3,к) –  значение плотности на к-й высоте

gsngSa( 4,к) –  значение температуры на к-й высоте

gsngSa( 5,к) –  значение скорости звука на к-й высоте

к = 1,2,…, n  где n – количество элементов во втором измерении массива gshgSa( ), которое можно получить используя функцию Ubound, возвращающую максимальный индекс элемента в массиве:

n = Ubound(gsngSa,2)-1

 Массив gsngSa находится в модуле формы frmSa и доступен только внутри этого модуля, поэтому все построения необходимо программировать в этой форме - при обработке события нажатия на кнопку  «Graph»  на форме frmSa.

С учетом этого текст обработчика события будет иметь следующий вид:

 

Private Sub CmdGrph_Click()

Dim k As Integer

         'ПОСТРОИТЬ ГРАФИКИ  ДАВЛЕНИЯ, ПЛОТНОСТИ И ТЕМПЕРАТУРЫ

FrmGrph1.PctP_h.Cls                                                      ' очистить  поле графика 1

FrmGrph1.PctP_h.ForeColor = vbGreen                         ' цвет графика 1 - зеленый

FrmGrph2.PctR_h.Cls                                                      ' очистить  поле графика 2

FrmGrph2.PctR_h.ForeColor = vbRed                           ' цвет графика 2 - красный

FrmGrph3.PctA_h.Cls                                                      ' очистить  поле графика 3

FrmGrph3.PctA_h.ForeColor = vbYellow                       ' цвет графика 3 - желтый

FrmGrph1.PctP_h.PSet (gsngSa(2, 1), gsngSa(1, 1))   ' нарисовать начальную
                                                                                                 '   точку графика 1

FrmGrph2.PctR_h.PSet (gsngSa(3, 1), gsngSa(1, 1))   ' нарисовать начальную
                                                                                                  '  точку графика 2

FrmGrph3.PctAh.PSet (gsngSa(4, 1), gsngSa(1, 1))   ' нарисовать начальную
                                                                                                     ' точку графика 3

For k = 2 To UBound(gsngSa, 2)-1                                    ' Цикл по остальным
                                                                                        '  точкам из массива gsngSa

   FrmGrph1.PctP_h.Line -(gsngSa(2, k), gsngSa(1, k)) ' нарисовать линию  до
                                                                                      '  очередной точки графика 1

   FrmGrph2.PctR_h.Line -(gsngSa(3, k), gsngSa(1, k)) ' нарисовать линию  до
                                                                                        очередной точки графика 2

   FrmGrph3.PctA_h.Line -(gsngSa(4, k), gsngSa(1, k)) ' нарисовать линию  до
                                                                                     '  очередной точки графика 3

Next k

    'ПОСТРОИТЬ ГРАФИК СКОРОСТИ ЗВУКА НА ПОЛЕ ГРАФИКА ТЕМПЕРАТУРЫ

    FrmGrph3.PctA_h.ForeColor = vbCyan                        ' цвет графика 4 - синий

FrmGrph3.PctA_h.PSet (gsngSa(5, 1), gsngSa(1, 1))   ' нарисовать первую точку
                                                                                                             '  графика 4

    For k = 2 To UBound(gsngSa, 2)-1                                    ' Цикл по остальным
                                                                                      ' точкам из массива gsngSa

        FrmGrph3.PctA_h.Line -(gsngSa(5, k), gsngSa(1, k)) ' нарисовать линию  до
                                                                                       ' очередной точки графика 4

    Next k

Me.Hide

FrmGrph1.Show                                                             ' показать форму  для
                                                                                                   ' графика давления

End Sub

 

2.16 Создайте полный код обработчика события нажатия на кнопку  «Graph»  на форме frmSa:

·        перейдите в окно Project Explorer и сделайте активной форму с именем frmSa,

·        выполните двойной щелчок на кнопке «Graph»

·        перепишите текст обработчика события – процедуру Private Sub cmdGrph_Click() в соответствии с текстом, приведенным в п. 2.15.  Комментарии в тексте программы можно не вводить.

·        сохраните обновленную форму кнопкой Save на панели инструментов VB.

2.17 Сохраните разработанный проект.

2.18 Протестируйте программу

·        запустите программу на выполнение в среде VB5.0

·        задайте расчет для полного диапазона высот от 0 до 15000 м  с шагом не более 1000 м

·        введите данные кнопкой OK

·        выполните расчет таблицы данных кнопкой Table

·        выполните расчет графиков и просмотр первого графика кнопкой Graph

·        просмотрите все графики, переходя с формы на форму кнопками Next

·        убедитесь, что полученные графики не содержат ошибок:

·        каждый график должен перекрывать весь диапазон высот

·        каждый график должен перекрывать почти весь диапазон по горизонтали

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

·        изменение физических величин с высотой должно соответствовать законам стандартной атмосферы.

2.19 Исправьте обнаруженные ошибки и сохраните проект.

2.20 Продемонстрируйте работу программы преподавателю и защитите работу, ответив на контрольные вопросы по теоретической части и тексту программы.

2.31 Закройте среду программирования

 

 

 

 


 

Лабораторная работа № 6 Построение графиков

Лабораторная работа № 6 Построение графиков

VB, необходимые для построения простейших изображений и графиков функций; научиться: · включать в проект графический компонент

VB, необходимые для построения простейших изображений и графиков функций; научиться: · включать в проект графический компонент

Свойство ScaleTopt задает координату y верхнего левого угла поля рисования

Свойство ScaleTopt задает координату y верхнего левого угла поля рисования

Управление цветом Поле рисования имеет 2 основных цвета, заданных соответствующими свойствами:

Управление цветом Поле рисования имеет 2 основных цвета, заданных соответствующими свойствами:

ForeColor ). Например, нарисовать точку голубого цвета с координатами x=100, y=200 в графическом окне

ForeColor ). Например, нарисовать точку голубого цвета с координатами x=100, y=200 в графическом окне

Переход от одной форме к другой осуществляйте двойным щелчком на пиктограмме формы в окне

Переход от одной форме к другой осуществляйте двойным щелчком на пиктограмме формы в окне

Command1, Command2 и Command3 , · задайте им свойства согласно таблице 2

Command1, Command2 и Command3 , · задайте им свойства согласно таблице 2

Next · введите в тело процедуры

Next · введите в тело процедуры

ScaleHight -15000

ScaleHight -15000

Save на панели инструментов VB

Save на панели инструментов VB

Next и нажмите клавишу Enter

Next и нажмите клавишу Enter

FrmGrph2.PctR_h.Line -(gsngSa(3, k), gsngSa(1, k)) ' нарисовать линию до очередной точки графика 2

FrmGrph2.PctR_h.Line -(gsngSa(3, k), gsngSa(1, k)) ' нарисовать линию до очередной точки графика 2

Исправьте обнаруженные ошибки и сохраните проект

Исправьте обнаруженные ошибки и сохраните проект
Скачать файл