C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Series->XValue не хватает параметров, Проблема при нахождении значения YValue
Polar_bear
Отправлено: 08.04.2005, 08:01


Ученик-кочегар

Группа: Участник
Сообщений: 9



Доброе время суток есть вот такой код
CODE

void __fastcall TDV_SpravForm::LabeledEdit3Exit(TObject *Sender)
{
 Series1->XValue=StrToFloat(LabeledEdit3->Text)/1000;
}


Дело в том что этот код не проходит При компиляции выдается такая ошибка [C++ Error] DV_Sprav_Unit.cpp(169): E2193 Too few parameters in call to '_fastcall TChartSeries::SetXValue(int,const double)'
Напрямую обратиться в функции SetXValue() не удается она в классе объявлена в private. А что тогда делать куда засунуть этот второй параметр и что это за параметр? Дело в том что мне нужно в последствии получить значение YValue. Как его можно найти задавая значение XValue. Спасибо[CODE]

Отредактировано Polar_bear — 08/04/2005, 08:03
AVC
Отправлено: 08.04.2005, 08:18


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

XValues Example
Many things can be done with the XValues property.
For example, you can modify its values (thus forcing the Chart to repaint):
This will change the 35th point horizontal value to 10.

LineSeries1->XValues->Value[35] = 10 ;

Оно ?
Polar_bear
Отправлено: 11.04.2005, 06:00


Ученик-кочегар

Группа: Участник
Сообщений: 9



wink.gif Ммм... не совсем мне нужно просто узнать чему будет равен YValue при определенном XValue который выбираю я. Ну и как это сделать.
** Rius
Отправлено: 11.04.2005, 06:17


Не зарегистрирован







Типа такого?
CODE
for(int i=0; i<Series1->XValues->Count(); i++)
{
 double f = 100.0;
 double x = Series1->XValues->Value[i];
 if(SameValue(f, x, 0.01)) Caption = Series1->YValues->Value[i];
}
Polar_bear
Отправлено: 15.04.2005, 05:46


Ученик-кочегар

Группа: Участник
Сообщений: 9



smile.gif Уже ближе. Но я хочу вот как. В Edit1 пользователь заносит число- это заначение Х. А во Edit2 программа возвращает значение Y. График уже построен.
Rius
Отправлено: 15.04.2005, 08:21


Мастер участка

Группа: Участник
Сообщений: 321



CODE
double xs = Edit1->Text.ToDouble();
for(int i=0; i<Series1->XValues->Count(); i++)
{
double x = Series1->XValues->Value[i];
if(SameValue(xs, x, 0.01)) RichEdit1->Lines->Add(Series1->YValues->Value[i]);
}

Если точка на линии графика, а не на точке построения, надо сравнивать соседние значения x и интерполировать y.
Polar_bear
Отправлено: 19.04.2005, 05:57


Ученик-кочегар

Группа: Участник
Сообщений: 9



Ааа... вот откуда ноги растут smile.gif.Об интерполяции я даже не думал Ну понял... большое спасибо. Модераторы, закрывайте тему

Отредактировано Polar_bear — 19/04/2005, 06:00

Вернуться в Вопросы программирования в C++Builder