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 ??