|
이 그래프는 센서가 좌우로 왔다갔다 하면서 데이터를 측정하는것입니다.
a) X축: 0~100까지(좌-->우)측정하면 Series1으로 표시
b) X축: 100-->0으로(우-->좌)측정하면 Series1으로 표시 ==> a),b) 계속 반복.
질문1)
이미지에서 보이는것처럼 현재는 Series1, 2 가 동시에 그려집니다.
제가 하고자 하는것은 Series1이 표시된 후 Series1을 클리어하고 Series2를 그리고 다시 클리어 이렇게 반복하는것을 나타내고자 합니다.
소스에서 어떻게 수정해야 할지 제 머리로는 무리 ㅠㅠ 도와주세요...
질문2)
b)처럼 측정은 우-->좌 로 하지만 Tchart에는 좌--->우 로 표시할려구 합니다.
그러면, 100-99-98- ............ - 3-2-1-0 이런식으로 표시되겠죠. 이것을 어떻게 소스코딩을 해야할지 쩝.
무지 고민하고 자료 찾아본 후 이렇게 고수님들께 부탁드립니다.
아직 초보라 넘 힘드네요.
그럼 오늘도 좋은 하루 되세욤~~~
********************************* 소 스 ***********************************************
<헤더파일>
...
public: // User declarations
double *dptrThickness;
double *dptrBThickness;
long lCount; //동적할당된 배열의 각 주소--> ~[0],~[1],~[2]........
long lBCount;
int iSize;
int iBSize;
__fastcall TForm1(TComponent* Owner);
<cpp>
#include <vcl.h>
#pragma hdrstop
#include "EXarray.h"
#include "stdlib.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
randomize();
dptrThickness = NULL;
dptrBThickness = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
iSize = 100;
iBSize = 100;
if(dptrThickness != NULL) {
delete []dptrThickness;
dptrThickness = NULL;
}
if(dptrBThickness != NULL) {
delete []dptrBThickness;
dptrBThickness = NULL;
}
dptrThickness = new double[iSize+1];
lCount = 0;
Series1->Clear();
dptrBThickness = new double[iBSize+1];
lBCount = 0;
Series2->Clear();
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender) <========= 요부분 수정이 중요 ㅠㅠ
{
dptrThickness[lCount] = rand() % 50;
dptrBThickness[lBCount] = rand() % 20;
lCount++;
lBCount++;
if(lCount > iSize){
Series1->Clear();
for(int i=0; i <= iSize; i+=5){
x = i;
y = dptrThickness[i];
Series1->AddXY(x,y,"",clRed);
if(lBCount > iBSize){
Series2->Clear();
for(int j=0; j <= iBSize; j+=5){
x = j;
y = dptrBThickness[j];
Series2->AddXY(x,y,"",clBlue);
}
}
}
lCount = 0;
lBCount = 0;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
if(dptrThickness != NULL)
delete []dptrThickness;
if(dptrBThickness != NULL)
delete []dptrBThickness;
}
//---------------------------------------------------------------------------
|