home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 04 / extra / autoscal.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-01-23  |  1.6 KB  |  70 lines

  1. (***********************************************)
  2. (*                AUTOSCAL.PAS                 *)
  3. (* Eine Demonstration der automatischen Anpas- *)
  4. (* sung von Turbo Pascal 4.0/5.0 Programmen an *)
  5. (* verschiedene Grafikkarten und deren         *)
  6. (* verschiedene Auflösungen.                   *)
  7. (*      (C) 1989 M.Schlöter und TOOLBOX        *)
  8. (***********************************************)
  9.  
  10. PROGRAM AutoScale;
  11.  
  12. USES Crt, Graph;
  13.  
  14. CONST MinArg = -3.14;
  15.       MaxArg = 3.14;
  16.  
  17. VAR XMin, XMax, YMin, YMax,
  18.     XRes, YRes,
  19.     GraphDriver, GraphMode,
  20.     x, YMitte               : INTEGER;
  21.  
  22.     StepX, AktX : REAL;
  23.  
  24.  
  25. BEGIN
  26.   (* Graphiksystem automatisch initialisieren *)
  27.   GraphDriver := Detect;
  28.   InitGraph(GraphDriver,GraphMode,
  29.             'D:\PASCAL\TURBO5');
  30.             (* Pfad auf BGI-Treiber !!! *)
  31.  
  32.   (* Koordinatenursprung immer bei (0,0) *)
  33.   XMin := 0;
  34.   YMin := 0;
  35.  
  36.   (* Aufloesungsgrenzen bestimmen *)
  37.   XMax := GetMaxX;
  38.   YMax := GetMaxY;
  39.  
  40.  
  41.   (* Anzahl Pixel in X- und Y-Richtung *)
  42.   XRes := XMax - XMin + 1;
  43.   YRes := YMax - YMin + 1;
  44.  
  45.   (* Schrittweite fuer Kurvenplot *)
  46.   StepX := (MaxArg - MinArg)/XRes;
  47.  
  48.   (* Box und Kurven Zeichnen *)
  49.   Rectangle(XMin,YMin,XMax,YMax);
  50.   AktX := MinArg;
  51.   YMitte := YMin + YRes DIV 2;
  52.   FOR x := XMin TO XMax DO BEGIN
  53.     PutPixel(x,
  54.              Round(YMitte
  55.                    + (YRes DIV 2 * Sin(AktX))),
  56.              15);
  57.     PutPixel(x,
  58.              Round(YMitte
  59.                    + (YRes DIV 2 * Cos(AktX))),
  60.              15);
  61.     AktX := AktX + StepX;
  62.   END;
  63.   REPEAT UNTIL KeyPressed;
  64. END.
  65.  
  66.  
  67.  
  68.  
  69.  
  70.