|
답변1) Timer루틴에 보면 시리즈1 처리후 2도 처리되도록(그려지도록) 코딩하셨습니다.
한번에 하나씩 그릴려고 하신다면 그냥 ICount 변수 하나만 가지고 증가시켰다가 감소시켰다가 하시는게 더 나을듯 합니다.
답변2) 일단 X축의 auto 기능을 끄시고, Min, Max를 1, 100으로 지정하신다음,
데이타를 clear하고, Add시켜서 사용하시면 될듯합니다.
이원 님이 쓰신 글 :
: 이 그래프는 센서가 좌우로 왔다갔다 하면서 데이터를 측정하는것입니다.
: 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;
: }
: //---------------------------------------------------------------------------
|