Witam
Mam do Państwa pytanie w sprawie rysowania obwiedni i przejście przez 0. Iż moja procedura wygląda następująco:
int ilonapx=0,pix=0;
int max=0;
for(int q=0;q<ileokie;q++){
if(max<obw[q])
max=obw[q];
}
int rob=0;
ilonapx=ileokie/1000;
Form1->Image1->Canvas->MoveTo(0,200);
for(int x=0;x<1000;x++){
for(int y=0;y<=ilonapx;y++){
pix=x*ilonapx+y;
rob = (400-(200+((obw[pix]*400)/(max*2))));
Form1->Image1->Canvas->Pen->Color=clGreen;
Form1->Image1->Canvas->LineTo(x,rob);
Form1->Image1->Canvas->Pen->Color=clBlack;
pix=0;
rob=0;
}
}
Na dole obrazki z wytłumaczeniem.
http://img38.imageshack.us/img38/5753/11242521.jpg
http://img42.imageshack.us/img42/8229/27018017.jpg
http://img29.imageshack.us/img29/1186/92341071.jpg
Jeśli chodzi o
rob = (400-(200+((obw[pix]*400)/(max*2))));
Jest to obliczanie gdzie ma być próbka na obrazku mój obrazek ma wysokość 400 a szerokości 1000
Jest właśnie problem z rozjeżdżaniem sie wykresów obwiedni i przejście przez 0 na procedura jest taka sama dla obu przypadków. Na dwóch obrazkach 1 i 3 jeśli są takie przesunięcia to wykres wygląda dobrze a na obrazku 2 jeśli jest 30 to wykres się przesuwa i tak samo idądz szerokością okien do 1 lub do 53 wykres zbliża się do dobrego miejsca. Czy ktoś może wie dlaczego tak się przesuwa ??