2017-01-08 4 views
-1

2 개의 시리즈가 있습니다. 아래 화면은 나쁜 점수를 보여줍니다. 2 개 시리즈를 요약하려면 아래 코드를 사용합니다.2 시리즈의 불량 합계 (다른 크기)

SDIAppForm->Chart4->Series[4]->SetFunction(new TAddTeeFunction(SDIAppForm->Chart4)); 

SDIAppForm-> Chart4-> 시리즈 [4] -> DataSources-> 추가 (SDIAppForm-> Chart4-> 시리즈 [3]); SDIAppForm-> Chart4-> Series [4] -> 데이터 소스 -> 추가 (SDIAppForm-> Chart4-> Series 1);

SDIAppForm-> Chart4-> Series [4] -> CheckDataSource();

Series1 and Series3 are red colour, Black is wrong summ (partially overlap series 3

은 내가 문제를 해결할 수있는 방법 어떤 간단한 아이디어가 있습니까? 나는 TeeChart의 전문가가 아니므로이 문제를 해결하는 간단한 예제를 위해 appriciate 할 것입니다.

+0

로 해결? – Yeray

+0

보간 함수로 문제가 해결되었습니다. – Writer

답변

0

문제는 당신이 [mcve] (http://stackoverflow.com/help/mcve)를 준비하시기 바랍니다 수 보간 기능

float InterpolateLineSeries_Power( double XValue, int APMChart4SeriesCounter_) 
// FirstIndex, LastIndex: Integer; XValue: Double): Double; 
{ 
    int Index=0; 
    double dx,dy; 
       for (Index = SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->FirstDisplayedIndex(); Index < SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->LastValueIndex ; Index++) { 
       if ((SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->XValues->Value[Index])>XValue) break; 

       } 


    //safeguard 
    if (Index<1) Index=1; 
    else if (Index>=SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->Count()) Index=SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->Count()-1; 

    // y=(y2-y1)/(x2-x1)*(x-x1)+y1 
    dx=SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->XValues->Value[Index] - SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->XValues->Value[Index-1]; 
    dy=SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->YValues->Value[Index] - SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->YValues->Value[Index-1]; 

    if (dx!=0) 
    return dy/dx*(XValue - SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->XValues->Value[Index-1]) + SDIAppForm->Chart4->Series[APMChart4SeriesCounter+3]->YValues->Value[Index-1] ; 
    else return 0; 
}