Построение графика функции Задача состоит в том, чтобы создать визуальное приложение, при помощи которого можно строить график заданной наперед функции одной переменной. Для примера возьмем функцию y(x)=x-cos(x). Создаем новый проект. В свойствах главной формы подписываем ее как: Graph. Помещаем на форму элемент Chart, который будет служить окном для отображения графика. В свойствах Chart даем ему программное имя – graphchart. При помощи свойства Titles добавляем заголовок к Chart, а затем подписываем его, как: «График функции y(x)=x-cos(x)». При помощи свойства Series изменим тип графика из гистограммы, на сглаженный график функции (в Series1 значение свойства ChartType из Column изменить на Spline), как показано на рисунке 3.3.  Рисунок 3.3 – Выбор типа графика Здесь же свойству LegendText установим значение y(x)=x-cos(x), тем самым зададим легенду нашего графика. Добавляем на форму элемент Button, который будет служить кнопкой для построения графика. В свойствах даем ему программное имя - graph_button и подпись – «Строить график» (свойства Name и Text соответственно). После этих действий дизайн нашего приложения должен иметь вид, показанный на рисунке 3.4.  Рисунок 3.4 – Дизайн приложения из примера 2 Дизайн готов, осталось написать программный код. Событию Load нашей главной формы зададим следующий код. //масштабирование по оси Х graphchart->ChartAreas[0]->AxisX->ScaleView->Zoom(0,100); // задаем область масштабирования graphchart->ChartAreas[0]->CursorX->IsUserEnabled = true; //даем пользователю право масштабировать graphchart->ChartAreas[0]->CursorX->IsUserSelectionEnabled = true; //даем пользователю право выбирать интервал масштабирования непосредственно на графике graphchart->ChartAreas[0]->AxisX->ScaleView->Zoomable = true; //включаем собственно режим масштабирования по оси Х graphchart->ChartAreas[0]->AxisX->ScrollBar->IsPositionedInside = true; //добавляем полосы прокрутки //аналогично для оси Y graphchart->ChartAreas[0]->AxisY->ScaleView->Zoom(0, 100); graphchart->ChartAreas[0]->CursorY->IsUserEnabled = true; graphchart->ChartAreas[0]->CursorY->IsUserSelectionEnabled = true; graphchart->ChartAreas[0]->AxisY->ScaleView->Zoomable = true; graphchart->ChartAreas[0]->AxisY->ScrollBar->IsPositionedInside = true; Этот код является настройкой нашего графика. Он включает свойства позволяющие пользователю масштабировать график по осям X и Y в диапазоне от 0 до 100 в декартовой системе координат. Масштабирование будет происходить путем выделения области на графике, которую необходимо увеличить. Осталось построить непосредственно график, для этого событию Click нашего элемента Button зададим следующий код: for (int i = 0; i < 100; i++){ //строим по точкам график, согласно формуле graphchart->Series[0]->Points->AddXY(i,i-Math::Cos(i)); } Данный код строит гладкий график по точкам от 0 до 100, по заданной формуле. Заметим, что метод AddXY не является методом построения графика, а лишь добавляет точку по указанным координатам. Из этого следует, что данный метод применим ко всем типам диаграмм. Результаты работы показаны на рисунке 3.5, после масштабирования на рисунке 3.6.  Рисунок 3.5 – Результаты работы программы из примера 2 (до масштабирования)  Рисунок 3.6 – Результаты работы программы из примера 2 (после масштабирования) |