- •Часть 2
- •Практическое занятие № 10
- •Краткие теоретические сведения
- •Пример выполнения задания
- •Контрольные вопросы
- •Варианты заданий
- •Практическое занятие № 11
- •Краткие теоретические сведения
- •Пример выполнения задания к лабораторной работе
- •Контрольные вопросы
- •Практическое занятие № 12
- •Задание: создать программу построения графика функции с поясняющим текстом в соответствии с номером индивидуального задания. Графический инструментарий
- •Пример выполнения задания Исходная функция: sin(X).
- •Контрольные вопросы
- •Практическое занятие № 13
- •Краткие теоретические сведения
- •Контрольные вопросы
- •1 Окно программы после нажатия кнопки «Выполнить».
- •Практическое занятие № 12
- •Практическое занятие № 13
- •Часть 2
- •394026 Воронеж, Московский просп., 14
Практическое занятие № 12
ПОСТРОение графиков функций в среде Delphi
Цель занятия: приобрести практические навыки программного построения графиков функций различными способами.
Задание: создать программу построения графика функции с поясняющим текстом в соответствии с номером индивидуального задания. Графический инструментарий
Богатство изобразительных возможностей Windows связано с так называемым дескриптором контекста графического устройства DC (Device Context) и тремя входящими в него инструментами – шрифтом, пером и кистью. В Delphi созданы специализированные классы-надстройки, существенно упрощающие использование графических инструментов Windows: для контекста – класс TCanvas, для шрифта – TFont, для пера – ТРеn и для кисти – TBrush.
Связанные с этими классами объекты автоматически создаются для всех видимых элементов и становятся доступны программе через свойства Canvas, Font, Pen и Brush .
Пример выполнения задания Исходная функция: sin(X).
Программа предусматривает три варианта рисования графика:
1) Точками с помощью свойства Pixels (график в левой верхней части окна).
2) Линиями с использованием метода LineTo (график в нижней левой части окна).
3) С использованием компонента TChart (в правой части окна).
На рис. 6.1 представлено окно формы в начале конструирования. В форме размещены следующие компоненты:
Кнопка BitBtn1 со страницы Additional. Она вызывает построение графиков в окне. Для создания этой кнопки свойству Kind присвойте bkOK, а значению Caption -График.
Кнопка BitBtn2 со страницы Additional. Дублирует кнопку закрытия приложения Windows. Для создания этой кнопки свойству Kind присвойте bkClose а значению Caption – Закрыть
TChart1. Компонент построения графиков со страницы Additional.
Свойству Caption всех компонентов формы присвойте соответствующие значения рис. 1
Для подготовки TChart к работе используется встроенный редактор свойств этого компонента Editing Chart, вызываемый двойным щелчком по компоненту. В нем в закладке Series нужно нажатием кнопки Add добавить, по крайней мере, одну серию данных для построения графика. Остальные параметры компонента можно оставить без изменения. При этом возникает окно для выбора способа отображения графика, выберите Line.
Рис. 1 Расположение компонентов на форме программы
После выбора вида графика у компонента TChart в окне формы отображается примерный вид представления графика. По умолчанию в правой части компонента отображается легенда - столбик из вычисляемых значений функции. При желании легенду можно удалить. Для этого следует вновь вызвать редактор свойств TChart, на вкладке Legend которого выключить флаг Visible. Можно изменить свойство Titles TChart с TChart, например, на “График функции Sin(x)”. В окне инспектора объектов свойству AxisVisible компонента TChart присвойте False.
Рис. 2 Окно работающего приложения.
Листинг программы
unit Unit1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i, amp, x01, y01, x02, y02, imax, t : integer;
k, func : real;
begin
imax := 100; //число точек в периоде (2)
t := 3; //число периодов
k := 2*pi/imax;//коэффициент преобразования линейной шкалы в угловую
amp := 70; //амплитуда
x01 := 20; //начало координат верхнего (с Pixels) графика (x01,y01)
y01 := 20+amp;
x02 := 20; //начало координат нижнего (с LineTo) графика (x02,y02)
y02 := y01+2*amp+40;
//Рисуем график с Pixels
Canvas.Font.Color:=clBlue; // Изменяем цвет надписи
Canvas.TextOut(20,0,'График функции Sin(x) с Pixels');
Canvas.MoveTo(x01,y01); //Рисуем ось X
Canvas.LineTo(x01+imax*t,y01);
Canvas.MoveTo(x01,y01+amp); //Рисуем ось Y
Canvas.LineTo(x01,y01-amp);
for i:=0 to imax*t do //Рисуем график
begin
func := -amp*sin(k*i);
Canvas.Pixels[x01+i,y01+round(func)]:= clGreen;
end;
//Рисуем график с LineTo
Canvas.Font.Color := clBlue;
Canvas.TextOut(x02,y02-amp-20, 'График функции Sin(x) c LineTo');
Canvas.MoveTo(x02,y02); //Рисуем ось X
Canvas.LineTo(x02+imax*t,y02);
Canvas.MoveTo(x02,y02+amp); //Рисуем ось Y
Canvas.LineTo(x02,y02-amp);
for i:=0 to imax*t do //Рисуем график
begin
func := -amp*sin(k*i);
Canvas.Pen.Color := clGreen; // Изменяем цвет рисуемой линии
Canvas.LineTo(x02+i,y02+round(func));
end;
//Рисуем график в компонентеTChart
for i:=0 to imax*t do
Chart1.SeriesList[0].AddXY(i,amp*sin(k*i),'',clRed);
end; {TForm1.BitBtn1Click}
end.
Для всех вариантов заданий написать программу построения графика функции, изменяющейся на отрезке [0, 6], разными способами: с использованием свойства Pixels, метода LineTo, компонента TChart.