|
Лабораторная работа №22
Графические компоненты
План работы:
1. Проект “Декартова система координат”
Разработать проект, рисующий декартову систему координат. На этапе выполнения форма должна иметь следующий вид:
a) Создайте новый проект в Delphi и сохраните его в отдельной папке “Декартова система координат”;
b) Разместите на форме со страницы System компонент PaintBox. Данный компонент имеет канву – пространство для создания графических объектов – и позволяет рисовать на ней, а также облегчает располагать рисунки в области формы.
c) Разместите на форме кнопку “Оси координат”, в событии OnCreate этой кнопки реализуйте рисование декартовой системы координат на компоненте PaintBox, подпись осей и начала системы координат, используя следующие методы класса TCanvas:
· MoveTo(x, y) – перемещение в точку с указанными координатами;
· LineTo(x', y') – рисование линии от текущей точки (x, y) до следующей точки с координатами (x', y');
· TextOut(x, y, ‘текст’) – вывод текста в указанную позицию (x, y);
Пример рисования оси y:
PaintBox1.Canvas.MoveTo(round(PaintBox1.Width/2), 0);
PaintBox1.Canvas.LineTo(round(PaintBox1.Width/2),
PaintBox1.Height);
Для изменения цвета осей и заливки использовать свойства Pen и Brush класса TCanvas.
d) Разместите на форме кнопку “Мигающая точка”. В обработке события OnClick этой кнопки установить символ мигающей 10 раз точки в первой четверти декартовой системы координат следующим образом:
for i:= 1 to 10 do
Begin
{Используем свойство Pixels для установки точки с определенными координатами и определенным цветом, метод random используем для случайного выбора цвета}
PaintBox1.Canvas.Pixels[X, Y]:= random(16077100);
{Устанавливаем временную задержку}
sleep(500);
{“Гасим” точку}
PaintBox1.Canvas.Pixels[X, Y]:= PaintBox1.Color;
sleep(500);
end;
e) Поместите на форму компонент RadioGroup, оформите его внешний вид в соответствии с требуемым.
f) Измените стиль линий при рисовании декартовой системы координат, используя метод Style класса TPen, для этого процедуру обработки события OnClick по кнопке “Оси координат” дополнить следующим фрагментом:
case RadioGroup1.ItemIndex of
0: PaintBox1.Canvas.Pen.Style:= psSolid;
1: PaintBox1.Canvas.Pen.Style:= psDash;
2: PaintBox1.Canvas.Pen.Style:= psDot;
3: PaintBox1.Canvas.Pen.Style:= psDashDot;
end;
g) Проверьте работу проекта.
2. Проект “Летающая тарелка”
Разработать проект, рисующий летающую тарелку на фоне звездного неба и её перемещение. На этапе выполнения форма должна иметь следующий вид:
a) Создайте новый проект в Delphi и сохраните его в отдельной папке “Летающая тарелка”;
b) Разместите на форме компонент Image, кнопки “Звездное небо”, “Тарелка”, “Полет”;
c) В обработке события OnClick кнопки “Звездное небо” нарисуйте на компоненте Image аналог звездного неба по следующим этапам:
· Установить темно-синий цвет заливки для компонента Image;
· Нарисовать по всему параметру компонента Image прямоугольник методом Rectangle;
· Нарисовать 400 точек, координаты и цвет которых выбираются случайным образом;
d) В обработке события OnClick кнопки “Тарелка” нарисуйте в верхнем левом углу компонента Image аналог летающей тарелки по следующим этапам:
· Установить серебристый цвет заливки компонента Image;
· Установить черный цвет пера компонента Image;
· Нарисовать эллипс с помощью метода Ellipse класса TCanvas:
Ellipse(x1, y1, x2, y2) – рисует эллипс, где x1, y1, x2, y2 – точки, определяющие прямоугольник, описывающий эллипс;
· Нарисовать дугу с помощью метода Arc класса TCanvas:
Arc(x1, y1, x2, y2, x3, y3, x4, y4) – рисует дугу, где x1, y1, x2, y2 – точки, определяющие прямоугольник, описывающий эллипс, x3, y3 – точка начала дуги, x4, y4 – точка конца дуги, дуга рисуется против часовой стрелки;
· Установить красный цвет заливки компонента Image;
· Левый “глаз” (прямоугольник) нарисовать с помощью метода Rectangle класса Canvas;
· Средний “глаз” нарисовать с помощью метода Rectangle и залить методом FloodFill желтым цветом;
· Нарисовать правый “глаз” зеленым цветом;
· Нарисовать две серебристые антенны с фиолетовым и голубым шариком;
e) Для организации перемещения тарелки из верхнего левого угла в нижний правый угол компонента Image выполнить следующее:
· Скопировать все операторы процедуры обработки события OnClick по кнопке “Тарелка” в отдельную процедуру Polet, в которой описать 2 входных параметра для задания смещения по оси x и y соответственно:
procedure Polet(x, y: integer);
· В каждом операторе процедуры Polet, содержащем координаты, прибавить к аргументам значения x или y соответственно;
f) В обработке события OnClick кнопки “Полет” организовать перемещение тарелки из верхнего левого угла в нижний правый угол компонента Image следующим образом:
{dx, dy - локальные переменные процедуры, рассматриваемой выше, содержащие смещения тарелки по оси x и y соответственно}
dx:= 0;
dy:= 0;
{пока dx меньше определенной величины (такой, чтобы тарелка не вылетала за рамки компонента Image), выполнять следующие действия}
Дата добавления: 2015-09-11; просмотров: 85 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Ковариация и коэффициент корреляции случайных величин. | | | Графические компоненты |