Пример 8.9. Эта программа демонстрирует работу с пикселами, случайными эллипсами и секторами.





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.

Другие записи

10.06.2016. Пример 8.4. Эта программа рисует закрашенный прямоугольник, меняя случайным образом цвет, тип штриховки и высоту тона звукового сопровождения.
Program MusicColor;    Uses Crt, Graph; {подключение к программе библиотек Crt и Graph}    Var    GrDriver, GrMode: Integer; {тип и режим работы графического драйвера}  BEGIN    GrDriver := Detect;…
10.06.2016. Пример 8.5. Эта программа рисует на экране звезду и закрашивает её, используя 12 типов штриховки.
Program Star;    Uses Crt, Graph;  {подключение к программе библиотек Crt и Graph}    Const { массив координат вершин многоугольника (звезды) }    TopsStar: Array[1..18] of Integer = (300,…
10.06.2016. Пример 8.6. Программа демонстрирует получение эффекта движения изображения прицела под управлением клавишей-стрелок клавиатуры с выводом координат центра прицела.
Program Sight;    Uses Crt, Graph; {подключение к программе библиотек Crt и Graph}    Const Step = 5; {шаг изменения координат центра прицела }    Instr = 'УПРАВЛЕНИЕ ДВИЖЕНИЕМ ПРИЦЕЛА - СТРЕЛКИ,…
10.06.2016. Пример 8.7. Программа рисует человечка, делающего утреннюю зарядку.
Program Animation;    Uses Crt, Graph;  {подключение к программе библиотек Crt и Graph}    Const {вертикальные и горизонтальные координаты положения рук}    Vert : Array[1..3] of Integer…
10.06.2016. Пример 8.8. Эта программа демонстрирует возможности изображения объёмных предметов и столбиковых диаграмм.
Program Design;    Uses    Graph, Crt; {подключение к программе библиотек Crt и Graph}    Const    Height : Array[1..8] of Integer=(40,150,90,240,190,120,50,90);  …