Лабораторная работа 22 Графические компоненты План работы- Проект ldquo;Декартова система координатr
Работа добавлена на сайт samzan.net:
Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
от 25%
Подписываем
договор
Лабораторная работа №22
Графические компоненты
План работы:
- Проект “Декартова система координат”
Разработать проект, рисующий декартову систему координат. На этапе выполнения форма должна иметь следующий вид:
- Создайте новый проект в Delphi и сохраните его в отдельной папке “Декартова система координат”;
- Разместите на форме со страницы System компонент PaintBox. Данный компонент имеет канву пространство для создания графических объектов и позволяет рисовать на ней, а также облегчает располагать рисунки в области формы.
- Разместите на форме кнопку “Оси координат”, в событии 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.
- Разместите на форме кнопку “Мигающая точка”. В обработке события 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;
- Поместите на форму компонент RadioGroup, оформите его внешний вид в соответствии с требуемым.
- Измените стиль линий при рисовании декартовой системы координат, используя метод 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;
- Проверьте работу проекта.
- Проект “Летающая тарелка”
Разработать проект, рисующий летающую тарелку на фоне звездного неба и её перемещение. На этапе выполнения форма должна иметь следующий вид:
- Создайте новый проект в Delphi и сохраните его в отдельной папке “Летающая тарелка”;
- Разместите на форме компонент Image, кнопки “Звездное небо”, “Тарелка”, “Полет”;
- В обработке события OnClick кнопки “Звездное небо” нарисуйте на компоненте Image аналог звездного неба по следующим этапам:
- Установить темно-синий цвет заливки для компонента Image;
- Нарисовать по всему параметру компонента Image прямоугольник методом Rectangle;
- Нарисовать 400 точек, координаты и цвет которых выбираются случайным образом;
- В обработке события 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 желтым цветом;
- Нарисовать правый “глаз” зеленым цветом;
- Нарисовать две серебристые антенны с фиолетовым и голубым шариком;
- Для организации перемещения тарелки из верхнего левого угла в нижний правый угол компонента Image выполнить следующее:
- Скопировать все операторы процедуры обработки события OnClick по кнопке “Тарелка” в отдельную процедуру Polet, в которой описать 2 входных параметра для задания смещения по оси x и y соответственно:
procedure Polet(x, y: integer);
- В каждом операторе процедуры Polet, содержащем координаты, прибавить к аргументам значения x или y соответственно;
- В обработке события OnClick кнопки “Полет” организовать перемещение тарелки из верхнего левого угла в нижний правый угол компонента Image следующим образом:
{dx, dy - локальные переменные процедуры, рассматриваемой выше, содержащие смещения тарелки по оси x и y соответственно}
dx := 0;
dy := 0;
{пока dx меньше определенной величины (такой, чтобы тарелка не вылетала за рамки компонента Image), выполнять следующие действия}
while dx < … do
begin
{рисуем звездное небо}
Button1Click(Sender);
{рисуем тарелку, учитывая смещение}
Polet(dx, dy);
{обновляем содержимое компонента Image}
Image1.Refresh;
{уделичиваем смещение по x и y соответственно}
dx := dx + 10;
dy := dy + 10;
{делаем задержку}
sleep(100);
end;
- Проверьте работу проекта.