Дидактические материалы для проведения практических работ в среде программирования Delphi

Разделы: Информатика


Проект «Графические примитивы»

Цель работы: Изучить методы рисования графических примитивов в среде Delphi.

Ход работы

1. Теоретическая часть работы. Описание графических методов среды программирования Delphi.

На формах Form или в графических окнах Image можно рисовать различные графические примитивы с использованием свойства Canvas (холст).

Цвет, толщина и стиль линий, которым рисуются графические примитивы на холсте, задаются как значения свойства Pen (карандаш).

Цвет и стиль заливки внутри геометрических примитивов задаются как значения свойства Brash (кисть).

Метод Pixels – установка точки с заданными координатами и цветом:

image1.Canvas.Pixels [x,y]:=color;

где X, Y –целочисленные координаты точки; Color - цвет точки.

Цвет можно задать с помощью одной из нескольких десятков констант, определяющих цвет (clBlack-черный, clBlue-синий, clGreen- зеленый, clRed- красный и т.д.) Цвет можно задать в цветовой модели RGB в шестнадцатеричном представлении, в котором для задания интенсивности базовых цветов используются по два шестнадцатеричных разряда($00FF0000 – синий, $0000FF00 – зеленый, $000000FF- красный, $00000000-черный и $00FFFFFF – белый).

Если цвет не задан, то рисование будет производиться цветом, принятым по умолчанию – черным.

Метод LineTo– рисование линии из точки с текущими координатами в точку с координатами X, Y.

image1.Canvas.LineTo (X,Y);

Переход в точку с координатами (X,Y) реализуется с помощью метода MoveTo.

image1.Canvas.MoveTo (X,Y);

Метод Rectangle – рисование прямоугольника.

image1.Canvas.Rectangle (x1,y1,x2,y2);

где x1,y1- координаты левого верхнего угла прямоугольника, x2,y2 – координаты правого нижнего угла.

Метод Ellipse – рисование окружностей и эллипсов.

image1.Canvas.Ellipse (x1,y1,x2,y2);

где x1,y1,x2,y2 – соответственно координаты левого верхнего и правого нижнего углов прямоугольника, в который вписана окружность.

Метод TextOut- вывод текста на холст..

image1.Canvas.TextOut (X, Y, ‘Text’);

где X, Y – координаты точки холста, начиная с которой выполняется вывод текста, Text – строковая переменная или строка, которая выводится на холст.

2. Практическая часть работы. Рисование графических примитивов.

Создать графический интерфейс проекта. Поместить на форму:

  1. Графическое окно Image1 для рисования.
  2. Кнопку Button1 («Пуск») для запуска событийной процедуры рисования.
  3. Кнопку Button2 («Выход») для завершения работы проекта.

Последовательно выделить объекты Button и описать соответствующие событийные процедуры. При выполнении событийной процедуры кнопки Button1 в графическом поле должна быть нарисована фигура: фрагмент программного кода проекта:

procedure Form1.Button1Click(Sender: TObject);
begin
with image1.Canvas do
begin
pen.Color:=clblack;
brush.color:=clblue;
rectangle(60,20,140,40);
brush.color:=$00ffffff;
pen.Color:=clred;
moveto(40,40);lineto(160,40);
ellipse(60,41,140,120);
{далее код выполняется учащимися самостоятельно}
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;

Проект «Построение графика функции»

Цель работы: Разработать проект построения в графическом окне графика функции y=x2 на интервале [0;10] с шагом изменения аргумента 1, используя известные графические методы.

Ход работы

1. Теоретическая часть работы. Описание проекта.

При создании проекта должны быть решены 2 задачи:

1. На заданном интервале найти значения функции при заданных значениях аргументов;

Для поиска значений функции используем цикл с предусловием:

X:=1;

While x<=10 do
Begin
Y:= x*x;
X:=x+1;
End;

2. Изобразить в графическом окне проекта оси координат, точки графика с координатами (x,y), соединить точки прямыми линиями.

2. Практическая часть работы. Построение графика.

  1. Разместить на объекте form1 объект Image1 размером 500х500 пикселей.
  2. Разместить на объекте form1 кнопки Button1 (Пуск) и Button2 (Выход).
  3. Написать программный код событийной процедуры кнопки «Пуск».


var
Form1: TForm1;
x0,y0,x,y,n:integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
with Image1.Canvas Do
begin
{построим оси координат }
MoveTo(0,480); LineTo (500,480); {ось Х}
MoveTo(20,0); LineTo (20,500); {ось Y}

{введем поправки на смещение точек графика}
x0:=20; {начало координат}
y0:=480;

{рассчитаем значение функции в первой точке при х=0}
x:=0;
y:= x*x;
{нарисуем точку и установим в эту точку перо
для дальнейшего рисования}
Pixels[x+x0,y0-y]:=clBlack;
MoveTo(x+x0,y0-y);

{нарисуем остальные точки графика и достроим линии графика}
x:=1;
n:=10; {10 точек экрана - единичный отрезок графика}
while x<=9 do
begin
y:= x*x;
Pixels[x+x0+n,y0-y*10]:=clBlack;
LineTo(x+x0+n,y0-y*10);
TextOut(x+x0+n, y0+10, inttostr(x));
MoveTo(x+x0+n,y0-y*10);
x:=x+1;
n:=n+10;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close; end; end.

Доработать программу: сделать подписи оси Y.