[Comm] Re: [Comm] Как сделать удобные шкалы на осях координат?

isa =?iso-8859-1?q?iscander_=CE=C1_mercuri=2Emk=2Eua?=
Чт Фев 27 13:13:22 MSK 2003


Здравствуйте, Илья!
Я в свое время писал своей девушке программку на (Делфях правда) и там
выбор диапазона делался так:

procedure  SelectRange( a , b: real);
      var dummy,down,up :real;
            n: integer;
begin
      if a=b then
      begin
        n:= Round(log10(a));
        dummy:=round(a/power(10,n-1));
        while dummy>=a do dummy:=dummy-power(10,n-1)*5;
          down:=dummy;
        while dummy<=a do dummy:=dummy+power(10,n-1)*5;
          up:=dummy;
      end
     else
     begin
         dummy:=abs(a-b);
         n:= Round(log10(dummy));
         down:=min(a,b);
         up:=max(a,b);

         dummy:=round(up/power(10,n-1));
         dummy:=dummy*power(10,n-1);
         while dummy <= up do dummy:=dummy+power(10,n-1)*5;
         up:=dummy;

         dummy:=round(down/power(10,n-1));
         dummy:=dummy*power(10,n-1);
         while dummy >= down do dummy:=dummy-power(10,n-1)*5;
         down:=dummy;
     end;
          Tmin:=min(down,up);   // Tmin, Tmax в Сишных терминах
          Tmax:=max(down,up);  // глобальные переменные -
                               // соответсвующие  мин-максимуму оси
                               // абсцис


end;    // Selecting rang

 Она сдала с первого раза, если у вас будут вопросы не стесняйтесь
 спрашивайте, впринципе это чистый Паскаль, но если надо могу
 прекинуть в Си
-- 
С уважением,
 isa                          mailto:iscander на mercuri.mk.ua





Подробная информация о списке рассылки community