Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Компьютерная графика ч1

.pdf
Скачиваний:
75
Добавлен:
06.03.2016
Размер:
1.49 Mб
Скачать

11

(жирная точка в центре кружка, изображающего переключатель -визуальное тому подтверждение), остальные переключатели отключены (визуальное подтверждение отключения – пустой кружок).

Пример программирования. Выбрать вариант, обозначенный переключателем Опция1 .

OptionButton1.Value=True

9. Combo Box Комбинированный список

Комбинированный список – это объединение текстового окна и обычного списка (см.

п.10) .

Интересны два его свойства: Text и Style.

Свойство Text может содержать текст элемента, выделенного в окне списка или текст, набранный в поле ввода.

В зависимости от величины свойства Style получаем разные виды списков. ComboBox1.Style=0 - раскрывающийся комбинированный список. Пример такого списка – поле параметров в окне Properties.

ComboBox 1.Style=1 - список показывается в окне постоянного размера, и, значит, можно вводить текст в список или выбирать элемент из списка.

ComboBox 1.Style=2 – раскрывающийся список. Первоначально такой список отображает одну строку, но щелкнув по указывающей вниз стрелке, открываем весь список, в котором можно выбрать один из элементов. Таким является список в поле “Объект” из окна кода. Пример программирования. Сделать комбинированный список раскрывающимся.

ComboBox 1.Style=2 .

10. List Box Список

Список - это перечень вариантов, выбираемых щелчком мыши.

Включенный в список вариант называется элементом списка. Если список – длинный и на экран целиком не выводится, Visual Basic автоматически добавляет линейки прокрутки (scroll bars). Для корректной работы с объектом «Список» его высота должна быть минимум три строки.

Пример программирования. Очистить список.

ListBox1.Clear

11. Horizontal Scroll Bar Горизонтальная линейка прокрутка

Горизонтальная линейка прокрутки позволяет перемещаться в горизонтальном направлении по экрану.

Пример программирования. Установить величину максимальной позиции движка на горизонтальной линейке равной 300.

HScroll1.Max=300

12. Vertical Scroll Bar Вертикальная линейка прокрутки

Вертикальная линейка прокрутки позволяет перемещаться в вертикальном направлении по экрану.

Пример программирования. Установить величину минимальной позиции движка на вертикальной линейке равной 0.

VScroll1.Min=0

13. Timer Таймер

12

Таймер – это внутренние часы формы. Обычные часы отсчитывают секунды, минуты, часы, а таймер отсчитывает временные интервалы, длительность которых

устанавливается свойством таймера Interval.

Например, мы хотим, чтобы таймер на форме «тикал» 1 раз в секунду, тогда свойство Interval должно быть равно 1000, так как временной интервал таймера (Interval / 1000) секунд. Значит, если мы хотим, чтобы таймер «тикал» 1 раз в 5 секунд , то получаем уравнение для определения величины свойства Interval: Interval/1000 = 5 секунд ,

И тогда Interval = 5000 .

Пример программирования. Установить отсчёт таймера равным 2 раза в секунду.

Timer1.Interval= 500

Таймер является видимым на форме во время проектирования формы и становится невидимым при запуске программы, хотя и отсчитывает временные интервалы. Чем полезен таймер? Тем что можно запрограммировать наступление каких-либо нужных нам событий на определенный временной отсчет таймера. Очевидно, что таймеров на форме может быть несколько, каждый со своей «скоростью» отсчёта времени.

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

14. Drive List Box

Список дисков

Список дисков – это раскрывающийся список всех дисков данного компьютера. Пример программирования. Установить отсчёт таймера равным 2 раза в секунду.

Timer1.Interval= 500

15. Directory List Box Список каталогов

Список каталогов - это список всех подкаталогов в текущем каталоге.

Пример программирования. Установить отсчёт таймера равным 2 раза в секунду.

Timer1.Interval= 500

16. File List Box Список файлов

Список файлов – это список всех ( или с указанным расширением) файлов в текущем каталоге.

Пример программирования. Установить отсчёт таймера равным 2 раза в секунду.

Timer1.Interval= 500

17. Shape

Фигура

Инструмент “Фигура” позволяет по умолчанию рисовать на форме только прямоугольники. В этом случае свойство Shape для данного инструмента равно 0. В

13

программе это записывается следующим образом: Shape1.Shape=0 .

Если требуется рисовать на форме другие фигуры, то для окружности и эллипса устанавливается

Shape1.Shape=1.

Для прямоугольника со скругленными углами Shape1.Shape=2 . Свойство BorderColor (Цвет контура) определяет цвет рисуемой фигуры.

Свойство BorderStyle (Стиль контура) определяет внешний вид контура фигуры (пунктир, точка-тире и т.д.) .

Пример программирования. Скруглить углы у прямоугольника.

Shape1.Shape=2

Примечание: в русской версии Visual Basic имя объекта “Shape” переведено как “Форма” и поэтому всюду в программах используется это имя; но фактически это “Фигура” .

18. Line

Линия

Инструмент “Линия” позволяет рисовать на форме прямые линии. Размер и расположение линии на форме можно изменить двумя способами:

1.Мышью потянуть за концы линии и, тем самым, удлинить или укоротить её. “Схватив” мышью линию, перенести её на новое место.

2.В таблице свойств Properties изменить свойства X1,Y1,X2,Y2 . Это координаты конечных точек линии.

Свойство BorderColor (Цвет контура) определяет цвет рисуемой линии. Свойство BorderStyle (Стиль контура) определяет внешний вид линии (пунктир,

точка-тире и т.д.) .

Пример программирования. Установить один из концов линии в точку с координатами (100,200) .

Line1.X1=100

Line1.Y1=200

Примечание: в русской версии Visual Basic имя объекта “Line” переведено как “Строка” и поэтому всюду в программах используется это имя; но фактически это “Линия” .

19. Image Изображение

Инструмент «Изображение», как и окно рисунка (PictureBox), позволяет размещать на форме рисунки (то есть загружать готовые картинки из различных

файлов установкой свойства Picture).

Файлы, из которых загружаются картинки, должны иметь форматы .BMP или .ICO . Инструмент «Изображение» имеет ценное свойство Stretch (Эластичность). Если

установить Stretch=True, то растягивая мышкой рамку изображения, можно изменить размеры и, как

следствие, пропорции изображения.

Пример программирования. Сделать картинку, помещенную в “Изображение1”,

невидимой Image1.Visible=False

Программирование графики: пиксель, цвет, система координат

Изображение на экране дисплея складывается из множества отдельных точек, которые называются пикселями (pixel – аббревиатура от английских слов «picture elements» – элементы картинки).

14

Каждый пиксель на экране (а значит и на форме) имеет свой цвет. Пиксель окрашивается смешением красного, зеленого и синего цветов разной интенсивности. А в результате получаем пиксели черного, белого, желтого и т.д. цветов. Таким образом, изображение на экране – это как бы мозаика из разноцветных точек (пикселей). В языке Visual Basic есть функция RGB( ). Её аргументы - это интенсивности цветов красного (RED), зелёного (GREEN ) и синего ( BLUE ). Из таблицы видно, что интенсивности могут изменяться в диапазоне 0 – 255.

Таблица цветов

Черный

RGB(0,0,0)

Красный

RGB(255,0,0)

Зеленый

RGB(0,255,0)

Синий

RGB(0,0,255)

Белый

RGB(255,255,255)

Желтый

RGB(255,255,0)

Малиновый

RGB(255,0,255)

Голубой

RGB(0,255,255)

Представим себе, что в банку накапали 255 капель красного цвета. Естественно, в банке будет краска красного цвета. Теперь добавим в банку ещё 255 капель синего цвета и получим при смешивании, как видно из таблицы, краску малинового цвета. Но ведь можно смешивать краски не только порциями по 255 капель, а добавлять произвольное количество капель краски из имеющихся в таблице.

Каждый пиксель на экране (а значит и на форме) имеет координаты. При размещении картинок или просто каких-либо объектов на форме используется система координат. Присутствие системы координат проявляется при размещении первого же объекта на форме – будь это пиксель (точка), изображение или, например, просто метка. Если посмотреть в окно свойств Properties, то обнаружим в нём следующие свойства:

Left

( Слева )

Top

( Верх )

Height

( Высота )

Width

( Ширина )

Эти четыре свойства полностью определяют положение и размеры объекта на форме, а эти же свойства самой формы определяют её положение и размеры на экране. Система координат в машинной графике отличается от привычной нам системы координат в алгебре.

Для объектов, размещённых на форме, начало системы координат находится в левом верхнем углу формы ( а начало системы координат для формы - в левом верхнем углу экрана); значения по оси X увеличиваются вправо, а по оси Y – вниз.

Свойство Left определяет смещение объекта по оси X (то есть его X-координату) , а свойство Top - по оси Y (то есть его Y-координату).

15

Рис. 5 Прямая в системе координат на форме

Рис. 6 Объект “Прямоугольник” в системе координат на форме

Основные операторы

' Нарисовать точку с координатами X=10,Y=20.

PSet (10, 20), RGB(0, 0, 0)

'Нарисовать линию между точками X1=20,Y1=30 и X2=100,Y2=200

Line (20, 30)-(100, 200), RGB(0, 0, 0)

'Нарисовать прямоугольник, у которого координаты противоположных углов

X1=150,Y1=30 X2=200,Y2=300

Line (150, 30)-(200, 300), RGB(0, 0, 0), B

'Нарисовать окружность с радиусом R=50 и центром в точке X=340, Y=80 Circle (340, 80), 50, RGB(0, 0, 0), , , 1

'Нарисовать сектор окружности

Circle (340, 80), 50, RGB(0, 0, 0), -0.7, -2.1

'Нарисовать окружность с "выкушенным" сектором

Circle (340, 80), 50, RGB(0, 0, 0), -2.1, -0.7

'Нарисовать эллипс, вытянутый по оси X (аспект=0.4)

Circle (500, 80), 50, RGB(0, 0, 0), -2.1, -0.7, 0.4

'Нарисовать эллипс, вытянутый по оси Y (аспект=4)

Circle (600, 80), 50, RGB(0, 0, 0), , , 4

16

Примеры основных процедур, которые используются в лабораторных работах

Пример 1. Очистить экран

Private Очистка_Click()

Cls

‘ Clear screen – очистка экрана

End Sub

Пример 2. Установить переменные в программе в 0, а содержимое текстовых окон очистить

Private Sub Сброс_Click()

I=0

XX=0

YY=0

Текст1.Text=” “ Текст2.Text=” “ Текст3.Text=” “

End Sub

Пример 3. Щелчком мыши по командной кнопке CommandButton1 изменить название кнопки “CommandButton1” на название «Команда1» (то есть изменить свойство Caption

кнопки CommandButton1)

Private Sub CommandButton1_Click()

CommandButton 1.Caption = «Команда1»

End Sub

Пример 4. Пример процедуры с условным оператором

Private Выбор_Click()

I=0

If I=0 Then

Текст1.Text=” 0 “

Else

Текст1.Text=” I не равно нулю “

End If

End Sub

Пример 5. На форме имеется линия с координатами конечных точек (5,100) и (500,100). Щелчком мыши по командной кнопке CommandButton1 нарисовать на форме 11 линий, параллельных оси X и отстоящих друг от друга на расстоянии 10 пикселей

(Step(Шаг)=10)

Рисуем линию между точками с координатами X1=5,Y1=100 и X2=500,Y2=100,

17

рисуем следующую линию между точками X1=5,Y1=110=(100+10) и X2=500,Y2=110 (100+10), и т.д. Процедура для рисования этих линий будет выглядеть следующим образом (используется оператор цикла For …. Next ):

Private Sub CommandButton1_Click()

For I = 0 To 100 Step 10 ‘ верхняя граница цикла

Line (5, 100 + I) - (500, 100 + I), RGB(0, 0, 0)

Next I 'конец (нижняя граница цикла)

End Sub

Пример 6. Нарисовать концентрические окружности с радиусами 20, 30, … , 100 и центром в точке X=100, Y=200 (использовать оператор цикла For …. Next ):

Private Sub Окружности_Click()

For I=0 To 100 Step 10

Circle (100,200), 20 + I , RGB(255,0,0), , ,1

Next I

End Sub

Пример 7. Остановить выполнение программы

Private Sub Стоп_Click()

Unload Me

‘ выгрузить форму

End Sub

Принципы выполнения лабораторных работ:

1.Запускаем лабораторную работу. На экран дисплея загружается форма, на которой будут разворачиваться события работы.

2.Как правило, на форме уже имеются командные кнопки (объекты CommandButton). Часть кнопок работает. Это означает, что нажав на них, мы запустим фрагменты, соответствующие теме работы и демонстрирующие её основные идеи. Эти фрагменты позволяют “войти в тему” текущей лабораторной работы.

3.Другая часть кнопок не работает. Это означает, что нажав на них, мы не

увидим никакого отклика программы. В этом случае, если мы перейдем в окно кода (двойной щелчок по неработающей кнопке - и “проваливаемся” в окно кода как раз внутрь процедуры, которая соответствует этой кнопке), то увидим пустую заготовку процедуры, которую следует заполнить самостоятельно.

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

1.Запустить Visual Basic 6.0. На экране появится окно “New Project”, которое по умолчанию предлагает открыть файл типа “Standard Exe”.

2.Если программу пишем “с нуля”, подтвердить открытие нового файла типа “Standard Exe” щелчком по кнопке “Open” (“Открыть”) . На экране появится пустая форма.

18

3. Если программу дописываем, то в окне “ New Project ” выбрать “Cancel” (“Отмена”) и далее в меню основного окна выбираем File , Open Project - появится окно поиска и выбора файла . Открываем требуемый файл (с расширением .vbp )

Примечание

Какое-то из окон во время работы может оказаться невидимым. Чтобы оно появилось, в меню основного окна надо выбрать:

1.

Для окна формы

View Object

2.

Для окна проекта

View

Project Explorer

3.

Для окна кода

View Code

4.

Для окна инструментов

View ToolBox

5.

Для окна свойств

View

Property Window

19

Лабораторная работа № 1:

Часть 1."Составление простейшей программы на языке Visual Basic с рисованием основных геометрических фигур"

Основные понятия, используемые в лабораторной работе: Форма. Система координат формы. Объект. Свойство. Метод. Этапы составления программы. Процедуры. Проект. Рисование точки, линии, прямоугольника, круга, эллипса вручную и программно.

Цель первой лабораторной работы - "освоить" пространство Visual Basic, поэтому просто реализуем всё, что перечислено в разделе " Основные понятия, используемые в лабораторной работе ".

Основные операторы

'Нарисовать точку с координатами X=10,Y=20.

PSet (10, 20), RGB(0, 0, 0)

'Нарисовать линию между точками X1=20,Y1=30 и X2=100,Y2=200

Line (20, 30)-(100, 200), RGB(0, 0, 0)

'Нарисовать прямоугольник, у которого координаты противоположных углов

X1=150,Y1=30 X2=200,Y2=300

Line (150, 30)-(200, 300), RGB(0, 0, 0), B

'Нарисовать окружность с радиусом R=50 и центром в точке X=340, Y=80 Circle (340, 80), 50, RGB(0, 0, 0), , , 1

'Нарисовать сектор окружности

Circle (340, 80), 50, RGB(0, 0, 0), -0.7, -2.1

'Нарисовать окружность с "выкушенным" сектором

Circle (340, 80), 50, RGB(0, 0, 0), -2.1, -0.7

'Нарисовать эллипс, вытянутый по оси X (аспект=0.4)

Circle (500, 80), 50, RGB(0, 0, 0), -2.1, -0.7, 0.4

'Нарисовать эллипс, вытянутый по оси Y (аспект=4)

Circle (600, 80), 50, RGB(0, 0, 0), , , 4

Пример 1. Щелчком мыши по командной кнопке CommandButton1 изменить заголовок метки “Label1” на заголовок «Привет!!!» (то есть изменить свойство Caption

метки Label1)

Private Sub CommandButton1_Click()

Label1.Caption = «Привет!!!»

End Sub

Пример 2. Пример процедуры с условным оператором

Private Выбор_Click()

I=0

If I=0 Then

Текст1.Text=” 0 “

Else

Текст1.Text=” I не равно нулю “

20

End If

End Sub

Пример 3. На форме имеется линия с координатами конечных точек (5,100) и (500,100). Щелчком мыши по командной кнопке CommandButton1 нарисовать на форме 11 линий, параллельных оси X и отстоящих друг от друга на расстоянии 10 пикселей

(Step(Шаг)=10)

Рисуем линию между точками с координатами X1=5,Y1=100 и X2=500,Y2=100, рисуем следующую линию между точками X1=5,Y1=110=(100+10) и X2=500,Y2=110

(100+10), и т.д. Процедура для рисования этих линий будет выглядеть следующим образом (используется оператор цикла For …. Next ):

Private Sub CommandButton1_Click()

For I = 0 To 100 Step 10 ‘ верхняя граница цикла

Line (5, 100 + I) - (500, 100 + I), RGB(0, 0, 0)

Next I 'конец (нижняя граница цикла)

End Sub

Пример 4. Нарисовать концентрические окружности с радиусами 20, 30, … , 100 и центром в точке X=100, Y=200 (использовать оператор цикла For …. Next ):

Private Sub Окружности_Click()

For I=0 To 100 Step 10

Circle (100,200), 20 + I , RGB(255,0,0), , ,1

Next I

End Sub

Лабораторные основы

Цель работы: усвоить основные этапы написания программы на языке Visual Basic; научиться использовать оператор цикла и условный оператор.

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

1."Набросать" на форму объекты: линия, фигура, командная кнопка. Изменить их свойства в таблице свойств:

для формы - свойство "Caption" и цвет фона;

для линии - координаты концов, тип линии, толщину, цвет рисования; для фигуры - тип фигуры, толщину контура, цвет контура, наличие заливки; для командной кнопки — имя, надпись ("Caption"), шрифт надписи. Изменения этих свойств - видимы .

Это рисование вручную .

2.Сохранить файл формы Forml.frm как JIaб1.frm, файл проекта Projectl.vbp как

JIaб1.vbp.

3.Перейти в окно кода и в процедуру CommandButton_Click() вписать по одной строчке для формы, линии, фигуры, командной кнопки, которые изменяли бы какое-либо из свойств из п.1

Объект. Свойство. Метод. Это рисование программно .

4. Сконструировать цикл For.... Next для линий или окружностей.