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

  1. (***********************************************************)
  2. (*                                                         *)
  3. (*                TURBO GRAPHIX version 1.06A              *)
  4. (*                                                         *)
  5. (*                     Pie chart module                    *)
  6. (*                  Module version  1.06A                  *)
  7. (*                                                         *)
  8. (*                  Copyright (C) 1985 by                  *)
  9. (*                  BORLAND International                  *)
  10. (*                                                         *)
  11. (***********************************************************)
  12.  
  13. procedure DrawCartPie(X1, Y1, X2, Y2, Inner, Outer : real;
  14.                       A : PieArray; N, Prior, Scale : integer);
  15. var
  16.   I : integer;
  17.   Sum, AspectLoc : real;
  18.  
  19. procedure DCS(N : integer);
  20. begin
  21.   DrawCircleSegment(X1, Y1, X2, Y2, Inner, Outer, abs(A[N].Area / Sum * 360),
  22.                     A[N].Area, A[N].Text, Prior, Scale);
  23. end; { DCS }
  24.  
  25. begin { DrawCartPie }
  26.   AspectLoc := AspectGlb;
  27.   AspectGlb := AspectGlb * BXGlb / BYGlb;
  28.   Sum := 0.0;
  29.   for I := 1 to N do
  30.     Sum := Sum + abs(A[I].Area);
  31.   for I := 1 to N - 1 do
  32.   begin
  33.     PieGlb := (A[I].Area > 0) and (A[I + 1].Area > 0);
  34.     DCS(I);
  35.   end;
  36.   PieGlb := (A[N].Area > 0) and (A[1].Area > 0);
  37.   DCS(N);
  38.   PieGlb := true;
  39.   AspectGlb := AspectLoc;
  40. end; { DrawCartPie }
  41.  
  42. procedure DrawPolarPie(X1, Y1, Radius, Angle, Inner, Outer : real;
  43.                        A : PieArray; N, Prior, Scale : integer);
  44. begin
  45.   Angle := Angle / 180 * Pi;
  46.   DrawCartPie(X1, Y1, X1 + Cos(Angle) * Radius, Y1 + Sin(-Angle) * Radius,
  47.               Inner, Outer, A, N, Prior, Scale);
  48. end; { DrawPolarPie }
  49.