Скачиваний:
13
Добавлен:
30.09.2018
Размер:
356.86 Кб
Скачать

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 Закройте среду программирования

Соседние файлы в папке Лаб_2часть