home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l048 / 1.ddi / FINDWRLD.HGH < prev    next >
Encoding:
Text File  |  1986-03-20  |  2.0 KB  |  59 lines

  1. (***********************************************************)
  2. (*                                                         *)
  3. (*                TURBO GRAPHIX version 1.06A              *)
  4. (*                                                         *)
  5. (*           World coordinate system finder module         *)
  6. (*                  Module version  1.06A                  *)
  7. (*                                                         *)
  8. (*                  Copyright (C) 1985 by                  *)
  9. (*                  BORLAND International                  *)
  10. (*                                                         *)
  11. (***********************************************************)
  12.  
  13. procedure FindWorld(I : integer; A : PlotArray; NPoints : integer;
  14.                     ScaleX, ScaleY : real);
  15. var
  16.   J : integer;
  17.   Xmax, Ymax, Xmin, Ymin, Xmid, Ymid, Xdiff, Ydiff : real;
  18.  
  19. begin
  20.   NPoints := abs(NPoints);
  21.   if NPoints >= 2 then
  22.     if I in [1..MaxWorldsGlb] then
  23.       begin
  24.         Xmax := A[1, 1];
  25.         Ymax := A[1, 2];
  26.         Xmin := Xmax;
  27.         Ymin := Ymax;
  28.         for J := 2 to NPoints do
  29.         begin
  30.           if A[J, 1] > Xmax then
  31.             Xmax := A[J, 1]
  32.           else
  33.             if A[J, 1] < Xmin then
  34.               Xmin := A[J, 1];
  35.           if A[J, 2] > Ymax then
  36.             Ymax := A[J, 2]
  37.           else
  38.             if A[J, 2] < Ymin then
  39.               Ymin := A[J, 2];
  40.         end;
  41.         ScaleX := abs(ScaleX);
  42.         ScaleY := abs(ScaleY);
  43.         Xdiff := Xmax - Xmin;
  44.         Xmid := (Xmax + Xmin) * 0.5;
  45.         Xmax := Xmid + ScaleX * 0.5 * Xdiff;
  46.         Xmin := Xmid - ScaleX * 0.5 * Xdiff;
  47.         Ydiff := Ymax - Ymin;
  48.         Ymid := (Ymax + Ymin) * 0.5;
  49.         Ymax := Ymid + ScaleY * 0.5 * Ydiff;
  50.         Ymin := Ymid - ScaleY * 0.5 * Ydiff;
  51.         DefineWorld(I, Xmin, Ymin, Xmax, Ymax);
  52.         SelectWorld(I);
  53.       end
  54.     else
  55.       Error(7, 2)
  56.   else
  57.     Error(7, 4);
  58. end; { FindWorld }
  59.