Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Снова График [D7, XP]


Страницы:   1 2

13 ©   (2006-05-17 17:54:00) 

Я уже задавал вопрос по построению графика в этом форуме так вот продолжение. Дело в том что мне нужно построить график по 32000 точек как сделать так чтобы по истечении какого то времени скажем 1сек график сдвигался. Скажем сначала показывал с первой точки до 100 потом с 100 до 200 и т.д. Подскажите может сталкивался кто


Kolan   (2006-05-17 19:32:00) [21]

Пример такой(я так и делаю в подобных ситуациях. Удобство в том, что способ отображения отделен от данных):

Пользую такую структуру для точки:
TDoublePoint = record
 X: Double;
 Y: Double;
end;


А график это:
TDoublePointArray = array of TDoublePoint;

Получив откудото данные в твоем случае, я думаю, это файл я сохраняю их в массив TDoublePointArray.

Вот пример для соседней ветки:
{Где-то заводим переменную для графика}
FArr: TDoublePointArray;

var
I, K: Integer;
Strings1, Strings2: TStringList;
X, Y: Double;
begin
Strings1 := TStringList.Create;
Strings2 := TStringList.Create;
try
  Strings1.LoadFromFile('File1Name');
  Strings2.LoadFromFile('File2Name');
  SetLength(FArr, Strings1.Count);
  K := 0;
  for I := 0 to Strings1.Count - 1 do
  begin
    X := StrToFloat(Strings1[I]);
    Y := StrToFloat(Strings2[I]);
    FArr[K].X := X;
    FArr[K].Y := Y;
  end;
finally
  Strings1.Free;
  Strings2.Free;
end;
end;


А теперь если надо отобразить часть можно сделать так:
{...}
procedure ShowArr(LeftAge, RightAge: Integer; Arr: TDoublePointArray)
var
 I: Integer;
begin
 {Диапазон не забудь проверить.}
 for I := LeftAge to RightAge do
   Series1.AddXY(Arr[I].X, Arr[I].Y);
end;


Пользуем так:
ShowArr(100, 200, FArr);

Писал опять же прям сдесь...


13   (2006-05-17 18:36:00) [22]


> Kolan ©   (17.05.06 18:07) [3]

А можно пример. Очень нужно


Kolan   (2006-05-17 18:07:00) [23]

Ну е еще можно массивчик с графиком хранить в памяти, а раз в секунду выводить тот кусок, который нужен. Получится эффект движения. Моргать не будет проверял...


EvS   (2006-05-17 18:00:00) [24]

Один из способов постраничный вывод.
Установи свойство MaxPointsPerPage:= кол-во точек на страницу.
Затем листай страницы (Page,NumPages,PreviousPage, NextPage)


Ega23   (2006-05-17 17:59:00) [25]

Минимум-максимум на оси менять по таймеру?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо