C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: TChart из массива  (Прочитано 2940 раз)
epic
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


« : 14 Август 2011, 11:00:07 »

Добрый день. Столкнулся с проблемой. нужно было сделать программу. которая через COM-порт собирает данные с АЦП и выводит их на монитор. знаний хватило только на создание статистического массива.
главная проблема заключается в том, что после 5 секунд считывания информации идет 30 секунд обработки.
Подскажите, пожалуйста, каким образом можно выводить данные из массива сразу.
Заранее благодарен.
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


« Ответ #1 : 08 Ноябрь 2011, 18:03:54 »

Код
Series1->AddXY(array[i][0],array[i][1]);

Для двумерного массива array[х][2];//где x- любое целое
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


« Ответ #2 : 09 Ноябрь 2011, 07:47:34 »

Можно сразу весь массив добавить:
Код
const int n = 50;
double mavalues[n];
for (int i=0;i<n;i++) mavalues[i] = (double) random(n);
Chart1->Series[0]->AddArray(mavalues, n);
 
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


« Ответ #3 : 10 Ноябрь 2011, 13:02:01 »

Можно сразу весь массив добавить:
Код
const int n = 50;
double mavalues[n];
for (int i=0;i<n;i++) mavalues[i] = (double) random(n);
Chart1->Series[0]->AddArray(mavalues, n);
 

А как по оси Х время вывести?
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


« Ответ #4 : 10 Ноябрь 2011, 14:43:08 »

Ну тогда уж лучше через AddXY:
Код
const int n = 50;
TDateTime d;
for (int i=0; i<n; i++) {
d = TDateTime::CurrentDate() + i;
Chart1->Series[0]->AddXY(i, (double) random(n), d.DateString(), clBlack);
}
 
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


« Ответ #5 : 10 Ноябрь 2011, 14:52:03 »

У меня шкала Х это время. Допусти в 21:10:12 одни данные по Y, в 21:10:34 получены другие данные по Y и т.д. Четкого периода нет во времени, может быть через минуту а может быть через 2 секунды. Как такое вывести.
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


« Ответ #6 : 11 Ноябрь 2011, 11:29:22 »

Передавай свое время как строковой параметр в AddXY:
Код
const int n = 50;
TDateTime d[n];
for (int i=0; i<n; i++) {
 // заполнение массива точек времени: d[i] = ...
}
 
for (int i=0; i<n; i++)
Chart1->Series[0]->AddXY(i, (double) random(n), d[i].TimeString(), clBlack);
 
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


« Ответ #7 : 12 Ноябрь 2011, 19:06:02 »

Передавай свое время как строковой параметр в AddXY:
Код
const int n = 50;
TDateTime d[n];
for (int i=0; i<n; i++) {
 // заполнение массива точек времени: d[i] = ...
}
 
for (int i=0; i<n; i++)
Chart1->Series[0]->AddXY(i, (double) random(n), d[i].TimeString(), clBlack);
 


Спасибо, то что надо. 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.119 секунд. Запросов: 20.