Сейчас мы займёмся построением графиков в Delphi. Но прежде чем взятся за построение графиков в Delphi немного теории:
Канва по английки Canvas это область компонента, на которой можно рисовать или же отображать готовые изображения, в том числе и построением графиков в Delphi. Она содержит свойства и методы, что существенно упрощающает графику Delphi. Все сложные операции с системой спрятаны для нас и поэтому рисовать в Delphi может любой человек, совершенно не владеющий машинной графикой.
Любая точка канвы имеет координаты X и Y. Система координат канвы имеет, как и везде в Delphi, начало координат левый верхний угол канвы. Координата X в Delphi возрастает при перемещении слева направо, а координата Y — при перемещении сверху вниз. В Delphi координаты измеряются в пикселях, где это есть наименьший элемент поверхности рисунка, с которыммы можем манипулировать. Важное свойство у пикселя — его цвет.
Кроме этого канва имеет свойство Pixels и это представляет собой двумерный массив, которыйже как мы уже знаем отвечает за цвета канвы. Рассмотрим пример, Canvas.Pixels[10,20] соответствует цвету пикселя, 10-го слева и 20-го сверху. С этим свойством, массивом пикселей, можно обращаться как с любым другим свойством: изменять цвет, задавая пикселю новое значение, или определять его цвет по хранящемуся в нем значению. Например, Canvas.Pixels[10,20] := 0 или Canvas.Pixels[10,20] := clRed — это задание пикселю красного цвета. Далее мы рассмотрим два способа построения графиков в Delphi:
1.способ - Это свойство Pixels с помощью которого мы будем рисовать на канве график. Давайте нарисуем пикселями график синусоиды на канве формы(см. рис.)

.

Построение графиков в Delphi


Процедура TForm1.Button1Click обработки построение графиков в delphi будет иметь следующий вид:
procedure TForm1.Button1Click(Sender: TObject);
var
X,Y: real; // координаты функции
PX,PY: longint; // координаты пикселей
begin
Color := clWhite;
for PX := 0 to ClientWidth do
begin
{X - аргумент графика,
соответствующий пикселю с координатой РХ}
X := PX*4*Pi/ClientWidth;
Y:=Sin(X);
{PY - координата пикселя,
соответствующая координате Y}
PY:=trunc(ClientHeight-150 - (Y+1)*ClientHeight/4);
{Устанавливается черный цвет выбранного
пикселя (О яркости)}
Canvas.Pixels [PX, PY] := clRed;
end;
end;
2.способ – это свойства Pen — перо. Это свойство является объектом, в свою очередь имеющим ряд свойств. Одно из них уже известное нам свойство Color — цвет, которым строится график или рисунок. Другое свойство — Width (ширина линии). Она задается в пикселях. По умолчанию ширина равна 1.
Следующее свойство Style оно определяет тип линии оно может принимать следующие значения:

  • psSolid

Сплошная линия

  • psDash

Штриховая линия

  • psDot

Пунктирная линия

  • psDashDot

Штрих-пунктирная линия

  • psDashDotDot

Линия, чередующая штрих и два пунктира

  • psClear

Отсутствие линии

  • psInsideFrame

Сплошная линия, но при Width > 1 допускающая цвета, отличные от палитры Windows

У канвы имеется так же свойство PenPos типа TPoint, которое определяет в координатах канвы текущую позицию пера. Перемещение пера без прорисовки линии, т.е. изменение PenPos, производится методом канвы MoveTo(X,Y, где (X, Y) — координаты точки, в которую перемещается перо. Далее текущая точка становится исходной, от которой методом LineTo(X,Y) можно провести линию в точку с координатами (X,Y). Но при этом текущая точка перемещается в конечную точку линии и новый вызов LineTo будет проводить точку из этой новой текущей точки.
Нарисуем пером график синуса из предыдущего примера. (cм. рис.)

 

Построение графиков в Delphi


В данном случае обработчик события формы TForm1.Button2Click может иметь вид:


procedure TForm1.Button2Click(Sender: TObject);
var
X,Y: real; // координаты функции
PX,PY: longint; // координаты пикселей
begin
Color:=clWhite;
Canvas.MoveTo(0,ClientHeight div 2);
for PX:=0 to ClientWidth do
begin
{X - аргумент графика,
соответствующий пикселю с координатой РХ}
X := PX*4*Pi/ClientWidth;
Y := Sin(X);
{PY - координата пикселя,
соответствующая координате Y}
PY := trunc(ClientHeight-170 -(Y+1)*ClientHeight/4);
{Проводится линия на графике}
Canvas.LineTo(PX,PY);
end;
end;


И так подведём итоги :

  • Для реализации приложения построение графиков в Delphi – нам нужно добавить на форму две кнопки;
  • Написать процедуры см. выше:
  • Установить свойство Color формы – clWhite(белый);
  • Запустить приложение и наслаждаться своим творением.

А для тех кому лень проделать всё это ниже прилагаю исходник «построениние графиков в Delphi»

Скачать исходник построениние графиков в Delphi:


Добавить комментарий


Защитный код
Обновить