Проект «Графические примитивы»
Цель работы: Изучить методы рисования графических примитивов в среде 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. Практическая часть работы. Рисование графических примитивов.
Создать графический интерфейс проекта. Поместить на форму:
- Графическое окно Image1 для рисования.
- Кнопку Button1 («Пуск») для запуска событийной процедуры рисования.
- Кнопку 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. Практическая часть работы. Построение графика.
- Разместить на объекте form1 объект Image1 размером 500х500 пикселей.
- Разместить на объекте form1 кнопки Button1 (Пуск) и Button2 (Выход).
- Написать программный код событийной процедуры кнопки «Пуск».
…
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.