Виталий Донцов – Программирование для Android и работа с датчиками в среде Delphi 11 (страница 18)
Stroke.Kind:=TBrushKind.Solid;
Stroke.Color:=TAlphaColors. Blue;
Stroke.Thickness:=2;
DrawPath (Path,1);
finally
endScene;
end;
Начало рисования ограничиваем
Для рисования используем свойство
procedure TForm1.Button3Paint (Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
var
P: TPointF;
i: Integer;
begin
P.X:= 0;
P.Y:= StrToInt(Memo1.Lines [0]);
Path.MoveTo (P);
for i:= 0 to Memo1.Lines.Count – 2 do
begin
P.X:= i*4;
P.Y:= PlotGrid1.Height – StrToInt(Memo1.Lines [i]);
Path.LineTo (P);
end;
end;
Результат можно видеть на рисунке: накапливаемые данные тут же отражаются на графике (перерисовывается график для данных в
Рис. 33. Рисование графика компонентом Path: TPathData.
Все же, гораздо удобнее и проще использовать для вывода данных на график специальный компонент, для этого предназначенный:
11.5. Компонент построения графиков Chart
В Delphi Android имеются специальный компонент для построения графиков –
Здесь же видны другие первостепенные свойства
– Общие; – Оси, – Заглавия, – Легенды и пр.
Внутри группы открываются их подробные настройки, которые можно делать также из
Основная функция графика – добавление данных:
AddXY (AXValue, AYValue: Double; ALabel: String; AColor: TColor);
Chart1.Series[1].AddXY (x,y,» ',TAlphaColors.Red); //Например
Найти значение Y по X (от 0 до Х макс. видимого графика):
Y:= Chart1.Series [0].YValue [X]; или: Y:= Series1.YValue [X].
Следует учитывать, что:
Chart1.SaveToBitmapFile(FileName.jpg); //Сохранить график в файл
Series1.Delete (X); //Удалить точку X графика.
Series1.MaxYValue и *.MinYValue; // Y Max и Min видимого графика
Ymax и Ymin в пределах окна графика можно и вычислять:
Ymin:= 1000000; Ymax:= 0;
for X:= 1 to Chart1.BottomAxis.Maximum do
begin
if Ymax <Round(Chart1.Series [0].YValue [X]) then Ymax:= Round (Chart1.Series [0].YValue [X]);
if Ymin> Round(Chart1.Series [0].YValue [X]) then Ymin:= Round (Chart1.Series [0].YValue [X]);
end;
Chart1.LeftAxis.Maximum:= Ymax; (отключить автомасштаб!)
Chart1.LeftAxis. Minimum:= Ymin;
Вычислять положение точки Х для точки экрана:
Label1.Text :-= FloatToStr(Series1.MaxYValue);//Значение Ymax
Label1.Position. X:= Series1.CalcXPos (Round (Series1.MaxYValue)); //Положение метки на экране в точке Х соответствующей Значению Ymax.
Рис. 34. Установка параметров графика Chart.
11.6. КОМПОНЕНТЫ 3D ГРАФИКИ
В Delphi для Android 10 и 11, как и в более ранних версиях, предусмотрена также 3-х мерная графика, где представлены компоненты 3D-Shapes, с возможностью изменять цвет и структуру поверхности – группа Materials.
Для разработки 3D графики нужно использовать
Вид объекта (глубина и ее направление) зависит от положе ния на экране. Координата Z приближает или отодвигает объект. Изменение угла отклоняет: для +X вперед, —Х назад; для Y соответственно вправо и влево: +Z поворачивает против часовой стрелки, —Z по часовой стрелке. Координаты объекта отсчитываются от его центра. Смысл всего этого для смартфонов проблематичен.
11.7. АНИМАЦИЯ ОБЪЕКТОВ
У многих компонентов есть свойство
Для роста объекта можно менять его свойство
Компоненты группы
11.8. ВОЗМОЖНОСТЬ РИСОВАНИЯ НА ЭКРАНЕ
Для формы существует в