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

Волченков Проектирование Wиндоwс-Приложений на языке Висуал Басиц 2010

.pdf
Скачиваний:
73
Добавлен:
16.08.2013
Размер:
2.11 Mб
Скачать

Private Sub Увеличенное_Click(ByVal sender _ As System.Object, _

ByVal e As System.EventArgs) _ Handles Увеличенное.Click

k = InputBox("Введите значение k", _

"Ввод коэффициента увеличения", 1.5) Me.Width = w0 + (k - 1) * w

Me.Height = h0 + (k - 1) * h

PictureBox2.Width = k * (w + 1)

PictureBox2.Height = k * (h + 1) For y = 0 To h

For x = 0 To w

Page2.SetPixel(x, y, c(x, y))

Next

Next

MsgBox("На Page2 - копия Page1") p = "увеличенное"

End Sub

Private Sub Уменьшенное_Click(ByVal sender _ As System.Object, _

ByVal e As System.EventArgs) _ Handles Уменьшенное.Click

k = InputBox("Введите значение k", _

"Ввод коэффициента уменьшения", 0.5) PictureBox2.Width = k * (w + 1) PictureBox2.Height = k * (h + 1)

For y = 0 To h For x = 0 To w

Page2.SetPixel(x, y, c(x, y))

Next

Next

MsgBox("На Page2 - копия Page1") p = "уменьшенное"

End Sub

Private Sub Нарисовать_Click(ByVal sender _ As System.Object, _

ByVal e As System.EventArgs) _ Handles Нарисовать.Click

Select Case p

Case "негативное", "черно-белое" gr = PictureBox2.CreateGraphics

 

91

gr.Clear(PictureBox2.BackColor) For y = 0 To h

For x = 0 To w

cp = Page2.GetPixel(x, y) Dim br As New SolidBrush(cp)

gr.FillRectangle(br, x, y, 1, 1)

Next

Next

Case "увеличенное", "уменьшенное" gr = PictureBox2.CreateGraphics gr.Clear(PictureBox2.BackColor) For y = 0 To h

For x = 0 To w

cp = Page2.GetPixel(x, y) Dim br As New SolidBrush(cp) gr.FillRectangle(br, _

k * x, k * y, k, k) Next

Next End Select

Нарисовать.Enabled = False

ОбработатьИзображение.Enabled = True End Sub

Пример результата работы процедур построения негативного изображения (команда подменю Негативное) и рисования полученного результата (команда меню Нарисовать) показан на рис. 6.6.

Примеры результата работы процедур построения увеличенного и уменьшенного изображения (команды подменю Увеличенное и Уменьшенное) и рисования полученного результата (команда меню Нарисовать) показаны на рис. 6.8 и 6.9.

Варианты задания 6.3.

Вариант 1. Написать процедуру команды Слева-направо – 3-й команды подменю, показанного на рис. 6.6.

Вариант 2. Написать процедуру команды Сверху-вниз – 4-й команды подменю, показанного на рис. 6.6.

 

92

Рис. 6.8. Окно приложения после построения увеличенного изображения и рисования результата

Рис. 6.9. Окно приложения после построения уменьшенного изображения и рисования результата

93

Изображения, которые должны получиться в результате работы процедур варианта 1 и варианта 2, показаны на рис. 6.10.

Рис. 6.10. Результат преобразования «слева-направо» и «сверху-вниз»

Указания.

1. В обоих вариантах необходимо внести необходимые коррективы в процедуру для команды меню Нарисовать – учесть новые значения переменной p.

2. Использовать следующие «заготовки» для процедур:

Private Sub СлеваНаправо_Click(ByVal sender _ As System.Object, _

ByVal e As System.EventArgs) _ Handles СлеваНаправо.Click

<Строки процедуры Варианта 1>

MsgBox("Зеркальное (слева-направо) - на Page2") p = "слева-направо"

End Sub

Private Sub СверхуВниз_Click(ByVal sender _ As System.Object, _

ByVal e As System.EventArgs) _ Handles СверхуВниз.Click

<Строки процедуры Варианта 2>

MsgBox("Зеркальное (сверху-вниз) - на Page2") p = "сверху-вниз"

End Sub

94

Отчет о работе

Отчет заключается в демонстрации студентом на терминале работы трёх самостоятельно отлаженных проектов: «Сортировка массива», «Быстрый поиск в отсортированном массиве методом дихотомии» и «Обработка изображения как двумерного массива пикселей». Проекты должны давать ожидаемые результаты при работе в режиме отладчика.

Должна быть также представлена демонстрация исполняемых Windows приложений, соответствующих трём указанным проектам.

95

Список рекомендуемой литературы

1.Лукин С.Н. Понятно о Visual Basic .NET. Самоучитель. М.: ДИА- ЛОГ-МИФИ, 2005.

2.Хальворсон М. Visual Basic .NET. Русская версия. Серия «Шаг за шагом». Практ. пособие. М.: СП ЭКОМ, 2004.

3.Богданов М.Р. Visual Basic 2005 на примерах. СПб.: БХВПетербург, 2007.

96