| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 12.10.09 Prihlásený: 16.11.09 Príspevky: 8 Témy: 3 |
Vedel by mi niekto poradit robim jednoduchý osciloskop v Turbo C++ funguje to ako ma len chcem aby mi po spustení krivka zacinala v nule v Timer1Timer priradujem kazdej vzorke jej velkost ako to spravim tak aby to vykreslovanie krivky zacinalo az od nulovej vzorky??poradte prosiiim
void Draw()
{
int y,x;
bmp->Canvas->Brush->Color=clBlack;
bmp->Canvas->FillRect(TRect(0,0,440,396));
bmp->Canvas->Pen->Color=clBlue;
bmp->Canvas->Pen->Width=10;
/////////////////////////vykreslenie mriezky///////////////////////////////
bmp->Canvas->MoveTo(0,0);
bmp->Canvas->LineTo(0,312);
bmp->Canvas->Pen->Width=1;
bmp->Canvas->MoveTo(40,396);
bmp->Canvas->LineTo(40,0);
bmp->Canvas->MoveTo(80,0);
bmp->Canvas->LineTo(80,396);
bmp->Canvas->MoveTo(120,396);
bmp->Canvas->LineTo(120,0);
bmp->Canvas->MoveTo(160,0);
bmp->Canvas->LineTo(160,396);
bmp->Canvas->MoveTo(200,396);
bmp->Canvas->LineTo(200,0);
bmp->Canvas->MoveTo(240,0);
bmp->Canvas->LineTo(240,396);
bmp->Canvas->MoveTo(280,396);
bmp->Canvas->LineTo(280,0);
bmp->Canvas->MoveTo(320,0);
bmp->Canvas->LineTo(320,396);
bmp->Canvas->MoveTo(360,396);
bmp->Canvas->LineTo(360,0);
bmp->Canvas->MoveTo(400,0);
bmp->Canvas->LineTo(400,396);
bmp->Canvas->Pen->Width=10;
bmp->Canvas->MoveTo(437,396);
bmp->Canvas->LineTo(437,0);
bmp->Canvas->Pen->Width=10;
bmp->Canvas->LineTo(0,0);
bmp->Canvas->Pen->Width=1;
bmp->Canvas->MoveTo(649,40);
bmp->Canvas->LineTo(0,40);
bmp->Canvas->MoveTo(0,80);
bmp->Canvas->LineTo(649,80);
bmp->Canvas->MoveTo(649,120);
bmp->Canvas->LineTo(0,120);
bmp->Canvas->Pen->Color=clLime;
bmp->Canvas->Pen->Width=3;
bmp->Canvas->MoveTo(0,160);
bmp->Canvas->LineTo(649,160);
bmp->Canvas->Pen->Color=clBlue;
bmp->Canvas->Pen->Width=1;
bmp->Canvas->MoveTo(649,200);
bmp->Canvas->Pen->Width=1;
bmp->Canvas->Pen->Color=clBlue;
bmp->Canvas->LineTo(0,200);
bmp->Canvas->MoveTo(0,240);
bmp->Canvas->LineTo(649,240);
bmp->Canvas->MoveTo(649,280);
bmp->Canvas->LineTo(0,280);
bmp->Canvas->Pen->Width=10;
bmp->Canvas->MoveTo(0,312);
bmp->Canvas->LineTo(649,312);
//////////////////////vykreslenie krivky/////////////////////////////
bmp->Canvas->Pen->Width=1;
bmp->Canvas->Pen->Color=clRed;
int i,di;
di=(vzoriek/432)/S;
x=6; for (i=0;i<vzoriek;i+=di)
{
y=vzorky[i];
y=W-y;
if (!i)
bmp->Canvas->MoveTo(x,y);
else bmp->Canvas->LineTo(x,y);
x++;
}
/////////////////////////////////////////////////////
Form1->Canvas->Draw(0,0,bmp);
}
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
dsound_init(Handle);
vzorky=new BYTE[buff_size];
vzoriek=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
bmp->Width=440;
bmp->Height=350;
Draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
Shape1->Brush->Color=clRed;
Shape2->Brush->Color=clGreen;
Draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Timer1->Enabled=false;
Shape2->Brush->Color=clRed;
Shape1->Brush->Color=clGreen;
Draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int cnt=0;
dsound_lock();
BYTE *p; int i,j,sz;
sz=dsound_siz0+dsound_siz1;
p=(BYTE*)dsound_adr0; i=0;
for (j=0;j<sz;j++)
{
if (j==dsound_siz0)
{
p=(BYTE*)dsound_adr1;
}
vzorky[j]=p[i];
i++;
}
vzoriek=j;
dsound_unlock();
cnt++;
Caption=cnt;
Draw();
}
|
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|