home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / graph / sintest.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-04  |  2KB  |  41 lines

  1. program SINTEST;
  2.  
  3. {$n-}                           {désactive le coprocesseur}
  4. Uses Crt, Tools;
  5.  
  6. Var phi,                        {angle}
  7.     x,y:Word;                   {coordonnées}
  8.     Caractere:Byte;               {caractère utilisé}
  9.     Sinus:Array[1..360] of Word;{mémorise la table des sinus}
  10.  
  11.  
  12. Procedure Sinus_Real;                         {dessine 26 fois un cercle}
  13. Begin
  14.   For Caractere:=Ord('A') to Ord('Z')do         {26 itérations}
  15.     For phi:=1 to 360 do Begin
  16.       x:=Trunc(Round(Sin(phi/180*pi)*20+40)); {calcule l'abscisse x}
  17.       y:=Trunc(Round(Cos(phi/180*pi)*10+12)); {calcule l'abscisse y}
  18.       mem[$b800:y*160+x*2]:=Caractere;          {affiche le caractère }
  19.     End;
  20. End;
  21. Procedure Sinus_nouvo;                          {dessine 26 fois un cercle }
  22. Begin
  23.   For Caractere:=Ord('A') to Ord('Z')do         {26 itérations}
  24.     For phi:=1 to 360 do Begin
  25.       x:=Sinus[phi]+40;               {calcule l'abscisse x}
  26.       If phi<=270 Then                {calcule l'ordonnée y}
  27.         y:=Sinus[phi+90] div 2 + 12 Else {cosinus = sinus déphasé }
  28.         y:=Sinus[phi-270] div 2 + 12;
  29.       mem[$b800:y*160+x*2]:=Caractere;  {affiche le caractère }
  30.     End;
  31. End;
  32.  
  33. Begin
  34.   Sin_Gen(Sinus,360,20,0);   {prépare la table des sinus}
  35.   ClrScr;                    {efface l'écran }
  36.   Sinus_real;                {dessine les cercles}
  37.   Repeat until keypressed;   {Attente de l'appui d'une touche avant}
  38.   ClrScr;                    {d'exécuter la procédure suivante}
  39.   Sinus_nouvo;               {dessine les cercles}
  40. End.
  41.