ТЕМА № 12. Построение изображений с использованием различных единиц масштаба. Графические методы PictureBox и Form

  • doc
  • 07.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 63. ТЕМА № 12. Построение изображений с использованием различных единиц масштаба.doc

ТЕМА № 1. Построение изображений с использованием различных единиц масштаба. Графические методы PictureBox и Form

Задание: постройте на форме изображение параболы (рис. 23).

 

Ход работы

Таблица 1

Единицы измерения масштаба

Константа VB

Значение

Название единицы измерения

Перевод в твипы

vbUser

0

Единицы пользователя

?

vbTwips

1

Твип

1

vbPoints

2

Точка

20

vbPixels

3

Пиксель

15

vbCharactsrs

4

Символ

120х240

vbInches

5

Дюйм

1440

vbMillimeters

6

Миллиметр

57

vbCentemeters

7

Сантиметр

567

 

1   Для демонстрации различных единиц масштаба (табл. 1) создайте новую форму и установите свойства Width и Height, равными 3000. Таким образом координаты верхнего левого угла теперь (0,0), а нижнего правого – (3000,3000).

2   Теперь запрограммируйте событие Click для этой формы следующим образом:

 

Private Sub Form_Click()

            ScaleMode = vbTwips

            Line (20, 20)-(200, 200), vbBlack, B

End Sub

 

3   Запустите приложение, щелкните мышью на форме и убедитесь в том, что на форме в верхнем левом углу появился маленький прямоугольник (Рис. 22).

4   Измените единицы масштаба на пиксели. Для этого присвойте свойству ScaleMode значение vbPixels. При этом координаты для рисования прямоугольника из пункта 2 будут восприняты по-другому. С учетом того, что 1 пиксель = 15 твипам, координаты нижнего правого угла Вашей формы будут не (3000,3000), а (200,200). Поэтому прямоугольник станет размером почти на всю форму. Убедитесь в этом.

 

Рис. 22

5   Аналогично повторите действия из пункта 4 для всех оставшихся единиц измерения масштаба (дюймы, символы, миллиметры, сантиметры). Причем для всех этих единиц, кроме миллиметров, прямоугольника не будет видно на экране потому, что координаты его верхнего левого угла (20,20) превосходят координаты нижнего правого угла формы. Попытайтесь исправить координаты прямоугольника, чтобы он стал виден на форме.

6   Приступим к выполнению основного задания. Для этого допустим, что мы будем строить параболу на отрезке от –10 до 10, тогда координата Y должна изменяться от 0 до 100.

7   Воспользуемся пользовательскими единицами масштаба следующим образом:

 

Private Sub Form_Click()

            ScaleTop = -100

            ScaleLeft = -10

            ScaleWidth = 20

            ScaleHeight = 100

End Sub

 

8   Теперь координаты верхнего левого угла нашей формы равны (–10,0), а нижнего правого – (10,100).

9   Осталось нарисовать параболу. Добавьте следующий код в процедуру frmПарабола_Click:

 

For x = -10 To 10 Step 0.01

            PSet (x, -x ^ 2)

Next x

 

10   Запустите программу и щелкните мышью на форме. Не правда ли, просто? При обычном подходе пришлось бы сдвигать, сжимать нашу параболу, чтобы она четко легла на форме. Но одна ошибка все еще осталась. Необходимо повернуть параболу ветвями вверх. Попробуйте сделать это самостоятельно (поэкспериментируйте с методом Scale формы).

 

Рис. 23. Парабола готова!

11   А теперь фокусы! Фокус первый: запустите приложение, щелкните мышью, чтобы появилась парабола, теперь измените размеры формы и опять щелкните мышкой. Результат: парабола напрочь привязана к размерам формы. Подумайте, почему так происходит?

12   Фокус № 2: запустите приложение, щелкните мышью на форме, чтобы появилась парабола, теперь щелкните мышью где-нибудь вне формы и опять вернитесь на форму. О чудо: изображение параболы исчезло! Это произошло из-за перерисовки формы. Перенесите весь код в процедуру Form_Paint (эта процедура вызывается как раз при перерисовке) или установите свойство формы AutoRedraw значение True, тогда сама операционная система будет следить за сохранением содержимого формы.

 

Дополнительное задание

Измените приложение так, чтобы оно строило изображение параболы не на форме, а в элементе управления PictureBox.

 

Контрольные задания

Разработайте приложение, которое строит изображение следующих функций:

1)  на отрезке от –10 до 10;

2)  на отрезке от –3π до 3π;

3)  на отрезке от –π до 5 π;

4)  на отрезке от –15 до 15;

5)  на отрезке от –3 до 3;

6)  на отрезке от  до ;

7)  на отрезке от  до ;

8)  на отрезке от –а до а;

9) на отрезке от  до ;

10) три витка спирали Архимеда.

 

Вопросы для самоконтроля

1   Чем отличаются свойства ScaleWidth и Width (ScaleHeight и Height, ScaleTop и Top, ScaleLeft и Left)?

2   Какие единицы измерения масштаба можно использовать с помощью свойства ScaleMode?

3   В чем состоит особенность применения свойств ScaleTop и ScaleLeft?

4   Какие графические методы формы Вы знаете?

5   Какие графические методы есть у элемента управления PictureBox?

6   Почему возникает необходимость использовать различные единицы масштаба?

7   В каких единицах будет измеряться масштаб после выполнения следующей процедуры:

 

Private Sub Form_Paint()

            ScaieMode = vbPixels

            ScaleTop = 10

End Sub

 

8   В каких единицах измеряется свойство Width (Height, Top, Left)?

9   С помощью какого оператора VB можно выполнить подряд несколько раз какое-либо действие?

10   Какой метод формы выводит изображение точки?

11   У каких элементов управления есть свойство Width (Height, Top, Left)?


Скачано с www.znanio.ru