Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 107 стр.

UptoLike

Составители: 

{установка шрифта, направления и размера символов}
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.
Пример 8.10. Программа изображает планету, вращающуюся вокруг Солнца
на фоне мерцающих звезд и расходящейся галактики.
Перемещение и изменение размеров
изображений на экране можно
организовать по разному. Так, в примере
8.6 эффект движения изображения
достигается следующим образом:
выводится изображение, затем оно
стирается с экрана с помощью
процедуры ClearViewPort, повторно
выводится с некоторым перемещением
и т.д.
В примере 8.7 применяется другой
способ. Сначала на экран выводится рисунок, затем тот же рисунок повторно
               {установка шрифта, направления и размера символов}
  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.
Пример 8.10. Программа изображает планету, вращающуюся вокруг Солнца
          на фоне мерцающих звезд и расходящейся галактики.

Перемещение и изменение размеров
изображений на экране можно
организовать по разному. Так, в примере
8.6 эффект движения изображения
достигается следующим образом:
выводится изображение, затем оно
стирается с экрана с помощью
процедуры ClearViewPort, повторно
выводится с некоторым перемещением
и т.д.

В примере 8.7 применяется другой
способ. Сначала на экран выводится рисунок, затем тот же рисунок повторно