Пример 8.8. Эта программа демонстрирует возможности изображения объёмных предметов и столбиковых диаграмм.

Program Design; 
  Uses 
  Graph, Crt; {подключение к программе библиотек Crt и Graph} 
  Const 
  Height : Array[1..8] of Integer=(40,150,90,240,190,120,50,90); 
{массив высот столбиков диаграммы} 
  Var 
  Color   : Word; {код цвета} 
  Key   : Char; 
  i, x, y, y1, h : Integer; 
  GrDriver, GrMode : Integer; {тип и режим работы графического драйвера} 
  GrError   : Integer; {код ошибки графики} 
BEGIN 
  GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); 
  GrError := GraphResult; If GrError <> GrOk then Halt; 
  y := 120; h := 50; y1 := 140; 
  SetTextStyle(DefaultFont, HorizDir, 2); {шрифт, направление, размер} 
  OutTextXY(160, 20, 'Конструируем интерьер'); 
  SetFillStyle(5, LightRed); {тип штриховки и цвет (ярко красный)} 
  For i := 4 downto 1 do 
  begin {рисование параллелепипедов заданного размера} 
  Bar3D(75, y1+i*h, 145, y1+(i+1)*h, 60, TopOff); Delay(200); 
  end; 
  Bar3D(75 , y1 , 145, y1+h , 60, TopOn); Delay(200); 
  Bar3D(180, y , 290, y+h , 30, TopOn); Delay(200); 
  Bar3D(330, 225 , 400, y+4*h , 30, TopOn); Delay(200); 
  Bar3D(300, y+3*h, 370, y+5*h , 30, TopOn); Delay(200); 
  Bar3D(370, y+3*h, 440, y+5*h , 30, TopOn); Delay(200); 
  Bar3D(300, y , 370, y+h , 30, TopOn); Delay(200); 
  Bar3D(370, y , 440, y+h , 30, TopOn); Delay(200); 
  Bar3D(442, y , 500, y+5*h , 30, TopOn); Delay(200); 
  Rectangle(135, 425, 470, 450); {рисование pамки для сообщения} 
  SetTextStyle(DefaultFont, HorizDir, 1); 
  OutTextXY(150, 435, 'Для продолжения нажмите любую клавишу !'); 
  Key := ReadKey; ClearViewPort; {очистка окна} 
{-----------------------------------------------------------------} 
  SetTextStyle(DefaultFont, HorizDir, 2); 
  OutTextXY(100, 20, 'Рисуем столбиковую диаграмму'); 
  x := 50; Randomize; {инициализация датчика случайных чисел} 
  For i := 1 to 8 do {цикл по столбикам диаграммы} 
  begin 
  Color := Random(12)+1; {задание кода цвета (кроме черного)} 
  SetFillStyle(i, Color); {задание типа штриховки и цвета} 
  SetColor(Color); 
  Bar3D(x, 350-Height[i], x+50, 380, 20, TopOn); {рисование столбика} 
  x := x+70; {изменение координаты x }; 
  Delay(200) {задержка} 
  end; 
  Key := ReadKey; CloseGraph; {Закрытие графического режима}
END.

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

10.06.2016. Пример 8.3. Эта программа демонстрирует возможности изображения символов в графическом режиме (требует наличия в текущем каталоге файлов шрифтов *.chr).
Program Symbols;    Uses Graph, Crt; {подключение к программе библиотек Crt и Graph}    Var    Key   : Char;    Font : String; {названия шрифтов }    Size, MyFont …
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…