@wanderer218
Бывший студент

Как сделать точечный обновляемый график?

Каждые 3 секунды генерируется случайное число. Ось X графика - это время в секундах, а ось Y - эти числа. График должен обновляться в реальном времени, а точки соединяться линиями. Пример графика ниже. Спасибо за помощь.
5e9494bd51145172456828.jpeg
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Проще всего используя Canvas.
Примерно так:
//Добавление по кнопке
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  //Смещение массива
  for i := 0 to 7 - 1 do
    Points[i] := Points[i + 1];
  //Добавляем в конец новое значение
  Points[7] := Random(40);
  //Перерисовываем окно
  Invalidate;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  //Заполняем случайными значениями
  for i := 0 to 7 do
    Points[i] := Random(40);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  i, Offset: Integer;
begin
  with Canvas do
  begin
    //Смещение сверху
    Offset := 150;
    //Ставим начало рисования линии на ось Х и расположение первого элемента массива
    //10 - это интервал между точками
    MoveTo(0 * 10, Offset - Points[0] * 2);
    //Рисуем остальные элементы
    for i := 1 to 7 do
    begin
      LineTo(i * 10, Offset - Points[i] * 2);
      //Кружок для точки
      Ellipse(i * 10 - 2, Offset - Points[i] * 2 - 2, i * 10 + 3, Offset - Points[i] * 2 + 3);
    end;
  end;
end;

5e9530680ce0a033034428.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы