На форме или в графическом поле можно
рисовать различные графические примитивы с
использованием графических методов:
Scale – позволяет
задать систему координат и масштаб для
формы или графического окна:
object.Scale (X1,Y1) - (X2,Y2)
Pset – установка
точки с заданными координатами и цветом:
object.Pset (X,Y) [,color]
Line
– рисование
линии, прямоугольника или закрашенного
прямоугольника заданного цвета:
object.Line (X1,Y1) - (X2,Y2) [,color][,B][F]
Circle –
рисование окружности, овала или дуги с
заданными координатами центра, радиусом,
цветом, начальным и конечным углом дуги и
коэффициентом сжатия:
object.Circle (X,Y),radius [,color, start, end, aspect]
Проект 5.12. «Графический редактор». Разработаем проект, который будет
выполнять функции простого графического
редактора, в котором в качестве поля для
рисования будет использоваться
графическое поле.
Прежде всего,
необходимо задать удобную систему
координат с помощью оператора Scale, который
фиксирует координаты левого верхнего и
нижнего правого углов поля.
|
Проект «Графический редактор». |
1 |
Разместить
на форме графическое поле picPaint. |
2 |
Разместить
на форме кнопку cmdScale и
создать событийную
процедуру установки системы координат (0
в левом нижнем углу поля, максимальные
значения координат X
и Y
равны 100: Private
Sub cmdScale_Click() picPaint.Scale
(0, 100)-(100, 0) End Sub |
Процедура установки точки.
Координаты точки будем запрашивать с
помощью функции ввода InputBox, а цвет зададим с
помощью одной из восьми констант,
определяющих цвет (vbBlack –
черный, vbBlue
– синий, vbGreen
– зеленый, vbCyan
– голубой, vbRed
– красный, vbMagenta
– сиреневый, vbYellow
– желтый, vbWhite
- белый).
3 |
Разместить
на форме кнопку cmdPoint и
создать событийную
процедуру установки точки: Private
Sub cmdPoint_Click() bytX1
= Val(InputBox("Введите
координату Х", "Координата X")) bytY1
= Val(InputBox("Введите
координату Y", "Координата Y")) picPaint.PSet
(bytX1, bytY1), vbRed End
Sub |
Процедура рисования линии.
Координаты концов линии и числовой код
цвета будем запрашивать с помощью функции
ввода InputBox.
Цвет будем задавать с помощью функции QBColor(number),
аргументом которой являются числа от 0 до 15,
а результатом – один из основных 16 цветов.
4 |
Разместить
на форме кнопку cmdLine и
создать событийную
процедуру рисования линии: Private
Sub cmdLine_Click() bytX1
= Val(InputBox("Введите координату Х1",
"Координата X1")) bytY1
= Val(InputBox("Введите координату Y1",
"Координата Y1")) bytX2
= Val(InputBox("Введите координату Х2",
"Координата X2")) bytY2
= Val(InputBox("Введите координату Y2",
"Координата Y2")) bytC
= Val(InputBox("Введите цвет", "Цвет")) picPaint.Line
(bytX1, bytY1)-(bytX2, bytY2), QBColor(bytC) End Sub |
Процедура рисования прямоугольника. Координаты противоположных вершин прямоугольника и числовые коды интенсивностей красного, зеленого и синего цветов будем запрашивать с помощью функции ввода InputBox.
Цвет
будем задавать с помощью функции RGB(bytRed,bytGreen,bytBlue),
аргументами которой являются три числа в
диапазонах 0 до 255 (интенсивности базовых
цветов), а результатом – число типа Long в диапазоне от 0 до 2563 (16 777
215). Таким образом, определяется
цветовая палитра с более чем 16
миллионами цветов, а каждый цвет задается
числом, которое вычисляется по формуле bytRed
+ 256*bytGreen + 2562*bytBlue.
5 |
Разместить
на форме кнопку cmdLineB и
создать событийную
процедуру рисования прямоугольника: Private
Sub
cmdLineB_Click() bytX1
= Val(InputBox("Введите координату Х1",
"Координата X1")) bytY1
= Val(InputBox("Введите координату Y1",
"Координата Y1")) bytX2
= Val(InputBox("Введите координату Х2",
"Координата X2")) bytY2
= InputBox("Введите
координату Y2",
"Координата Y2") bytR
= Val(InputBox("Введите интенсивность
красного цвета", "Красный цвет")) bytG
= Val(InputBox("Введите интенсивность
зеленого цвета", "Зеленый цвет")) bytB
= Val(InputBox("Введите интенсивность
синего цвета", "Синий цвет")) picPaint.Line
(bytX1, bytY1)-(bytX2, bytY2), RGB(bytR, bytG, bytB), B End Sub |
|
6 |
Разместить
на форме кнопки cmdLineBF
и cmdCircle
и самостоятельно создать событийные
процедуры рисования закрашенных
прямоугольников и окружностей. |
|
7 |
Запустить
проект. Последовательно щелкнуть на
кнопки рисования объектов и ввести
необходимые параметры на появляющихся
панелях ввода. |
|
8 |
Сохранить
проект в файле prj12.vbp. |
Проект 5.13. «Построение графика
функции». Разработаем
проект построения графиков функций. В
качестве примера рассмотрим построение
графика функции y
= sinx.
|
Проект «Построение графика функции». |
|
1 |
Разместить
на форме графическое поле picGraph,
в котором будет производиться
построение графика. |
|
2 |
Разместить
на форме кнопку cmd1
и
создать событийную процедуру
построения графика, которая установит
масштаб, в цикле осуществит построения
графика функции, нарисует оси координат
и напечатает на них числовую шкалу: Private
Sub cmd1_Click() 'Задание
масштаба picGraph.Scale
(-10, 2)-(10, -2) 'Построение
графика For
sngX = -10 To 10 Step 0.01 picGraph.PSet
(sngX, Sin(sngX)) Next
sngX 'Ось
Х picGraph.Line
(-10, 0)-(10, 0) For
bytI = -10 To 10 picGraph.PSet
(bytI, 0) picGraph.Print
bytI Next
bytI 'Ось
Y picGraph.Line
(0, 2)-(0, -2) For
bytI = -2 To 2 picGraph.PSet
(0, bytI) picGraph.Print
bytI Next
bytI End Sub |
|
3 |
Запустить
проект и щелкнуть по кнопке График. Для
построения графика другой функции
необходимо в программном коде в цикле
построения графика задать новую функцию. |
|
4 |
Сохранить проект в файле prj13.vbp. |
5.46.
Усовершенствовать проект 5.12 «Графический
редактор» так, чтобы параметры для
рисования графических примитивов
задавались в текстовых полях и
существовала возможность очистки поля
рисования.
5.47.
Усовершенствовать проект-задание 5.46 так,
чтобы координаты для рисования графических
примитивов задавались щелчками мыши в
определенных точках графического поля.
5.48.
Усовершенствовать проект-задание 5.47 так,
чтобы управление графическим
редактором реализовывалось не кнопками, а с
помощью меню.
5.49.
Придумать проект, реализующий демонстрацию
палитры цветов.
5.50.
Создать проект, позволяющий задавать цвета
различными способами (с помощью цветовых
констант, функции QBColor
и функции RGB) и демонстрирующий
заданный цвет.
5.51.
Создать проект, который чертит треугольник
по заданным щелчком мыши точкам и вычисляет
его периметр и площадь.
5.52.
Усовершенствовать проект 5.13 «Построение
графика функции» так, чтобы можно было
строить график функции для различных
наборов значений ее аргумента Х.
Предусмотреть автоматическую
корректировку масштаба и шкал осей
координат. Предусмотреть возможность
очистки графического поля.
5.53.
Усовершенствовать проект 5.13 «Построение
графика функции» так, чтобы можно было
приближенно, графически, решать уравнения,
например, уравнение x3 = sinx.