Программа демонстрирует работу с пикселами, случайными эллипсами и секторами — Pascal(Паскаль)

{        Внимание! Для работы этой программы необходимо, чтобы:

          1) Turbo Pascal был установлен в каталог  C:\TP;
          2) каталог C:\TP\BGI содержал файл  egavga.bgi ;
          3) в меню  Options/Directories  был указан путь
             к файлу  graph.tpu,  например,  С:\TP\UNITS.

        Если Turbo Pascal установлен в другом каталоге, нужно изменить
        путь к нему в процедуре  InitGraph  (8-я строка программы).
}

 Program RandomFigures;
   Uses Graph, Crt;
   Var Key                      : Char;
       GrDriver, GrMode         : Integer;
       Radius, MaxX, MaxY, Ugol : Word;                { параметры процедур }
 BEGIN
   GrDriver := Detect;         { автоопределение типа графического драйвера }
   InitGraph(GrDriver, GrMode, 'C:\TP\BGI');{ установка графического режима }
   SetTextStyle(DefaultFont, HorizDir, 2);
                         { установка шрифта, направления и размера символов }
   OutTextXY(160, 50, 'Рисуем звездное небо');
   Rectangle(110, 90, 520, 380);                          { рисование рамки }
   Randomize;                       { инициализация датчика случайных чисел }

   Repeat                         { цикл прерывается нажатием любой клавиши }
     PutPixel(Random(GetMaxX-250)+120, Random(GetMaxY-210)+100,
     Random(15));            { вывод пикселя в области, ограниченной рамкой }
     Delay(5)                { задержка                                     }
   until KeyPressed;

   Key:=ReadKey; ClearDevice;                 { очистка графического экрана }
        {-------------------------------------------}
   SetColor(White);                           {  цвет рисования             }
   OutTextXY(140, 30, 'Рисуем случайные эллипсы');
   Rectangle(100, 70, 560, 420);               { рисование рамки            }
   MaxX := GetMaxX;
   MaxY := GetMaxY;
   Radius := MaxY div 10;
   SetLineStyle(0, 0, 1);                           { толщина и стиль линии }
   SetViewPort(101, 71, 559, 419, ClipOn);    { установка окна внутри рамки }
   Randomize;                       { инициализация датчика случайных чисел }

   Repeat                         { цикл прерывается нажатием любой клавиши }
     SetBkColor(Black);           { цвет фона                               }
     SetColor(Random(13)+1);      { цвет рисования                          }
     SetFillStyle(Random(12), Random(13)+1);    { образец и цвет штриховки  }
     FillEllipse(Random(MaxX), Random(MaxY),    { координаты центра эллипса }
     Random(Radius), Random(Radius));           { полуоси эллипса           }
   until KeyPressed;

   Key:=ReadKey;
   ClearDevice;                               { очистка графического экрана }
        {-------------------------------------------}
   SetColor(White); SetViewPort(1, 1, GetMaxX, GetMaxY, ClipOn);
   OutTextXY(140, 20, 'Рисуем случайные секторы');
   Rectangle(90, 60, 570, 420); { рисование рамки }
   SetViewPort(92, 62, 569, 419, ClipOn);     { установка окна внутри рамки }

   Repeat                         { цикл прерывается нажатием любой клавиши }
     SetFillStyle(Random(12), Random(13)+1);  { изменение штриховки и цвета }
     Ugol := Random(360);                     { угол сектора                }
     Sector(Random(MaxX-200), Random(MaxY-180), Random(Ugol), Ugol,
     Random(Radius*2), Random(Radius*2));     { рисование сектора           }
   until KeyPressed;

   ClearViewPort;                            { очистка окна                 }
   CloseGraph;                               { закрытие графического режима }
 END.

Leave a Comment

+ 7 = 15