Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TChart - добавление Series в цикле 
:(
    Опции темы
Khan
Дата 25.4.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Доброе время суток! На форме компонент TChart, рисую линию таким образом:
Код

int m;
m=1; //пока сам определяю, но должно по ходу программы
for(int i=0;i<m;i++) {
  for(int j=0;j<n;j++)      
      Series1->AddXY(masX[i][j],masY[i][j],"",clRed); }

Как можно реализовать добавление линий в цикле, если m>1, т.е. Series2->AddXY..Series3->AddXY.. и причем разными цветами. Т.е. с увеличением i в цикле, увеличивалась Series и менялся цвет линии. Возможно ли такое?  smile  Или сделать всё на условиях? у меня по условию m<=4.
Заранее благодарю! 

PM MAIL   Вверх
petlyura
Дата 25.4.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 30.1.2008
Где: Харьков

Репутация: 2
Всего: 2



TColor Col[4] = {clRed, clYellow, ...};

for(int i=0; i < count;  i++)
{
    TFastLineSeries* NewSeries=new TFastLineSeries(this);
     AddSeries(NewSeries);
     NewSeries->Active=...;
     NewSeries->SeriesColor = Col[i]; // а тут задаете разные цвета
     NewSeries->LinePen->Width = ...;
     NewSeries->XValues->DateTime =...;
     NewSeries->XValues->Order = ...;
     NewSeries->YValues->DateTime =...;
     NewSeries->YValues->Order =... ;
     NewSeries->VertAxis = ...;
     NewSeries->Tag=i;
     Series[i]->Active=true;
}
 
for(int i=0; i < SeriesCount(); i++)
 {
  Series[i]->AddXY( masX[i][j],masY[i][j],"",clRed );  
 }
Где-то так...
PM MAIL   Вверх
Khan
Дата 25.4.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



petlyura, что-то мне не понятно...   smile 
SeriesCount(); - это что за функция? count - это количество Series? 
PM MAIL   Вверх
petlyura
Дата 26.4.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 30.1.2008
Где: Харьков

Репутация: 2
Всего: 2



Цитата

petlyura, что-то мне не понятно...    
SeriesCount(); - это что за функция? count - это количество Series?


count - это твое m, используй вместо count m. 

SeriesCount() - This is the number of Series (Active or not) a Chart has. (help BCB) 
PM MAIL   Вверх
Khan
Дата 28.4.2008, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Код

int k=10;
int *y;
double *x;
x=new double [k];
y=new int [k];
for (int i=0; i<k;i++) {x[i]=0.0; y[i]=0;}
for (int i=0; i<k;i++) x[i]=i+1;
for (int i=0; i<k;i++) y[i]=i+20;


int m=1;

TColor Col[4] = {clRed, clYellow, clBlue, clGreen};

for(int i=0; i < m;  i++)
{
    TLineSeries* NewSeries=new TLineSeries(this);
     Chart1->AddSeries(NewSeries);
     NewSeries->Active=true;
     NewSeries->SeriesColor = Col[i]; 
     NewSeries->LinePen->Width=4;
     NewSeries->XValues->DateTime=false;
     NewSeries->XValues->Order=loNone;
     NewSeries->YValues->DateTime =false;
     NewSeries->YValues->Order=loNone ;
     NewSeries->VertAxis=aLeftAxis;
     NewSeries->Tag=i;
     Chart1->Series[i]->Active=true;

}

for(int i=0; i < Chart1->SeriesCount(); i++)
 {
  Chart1->Series[i]->AddXY(x[i],y[i],"",clRed );
 }

Здесь в приведенном коде для одного графика. В легенде появляется Series0, а самого графика не видно, хотя масштаб осей изменяется. Может я какие-то не те свойства поставил?! Подскажите, пожалуйста, что не так. 

Это сообщение отредактировал(а) Khan - 28.4.2008, 07:40
PM MAIL   Вверх
Annihilator
Дата 11.5.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



вот так проще
Код

{
    const int graph_quan=10;
    int n;
    TFastLineSeries **line;
    line = new TFastLineSeries*[graph_quan];
    for (int i = 0; i < graph_quan; i++)
    for (n = 1; n <= graph_quan; n++)
    {
        line[n]= new TFastLineSeries(Chart1);
        Chart1->AddSeries(line[n-1]);
        for(int i = 0; i < 1000; i++)
        Chart1->Series[n-1]->AddXY((double)i,1/  pow(1+pow((double)i/200,2*(double)n),0.5),"",clRed);
    }
}


Это сообщение отредактировал(а) Annihilator - 11.5.2008, 21:17


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0724 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.