МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x

    I I I {Действия в текстовом режиме}.

    I I I-> SetGraphMode - возврат в графический режим.

    I I {Действия в графическом режиме}.

    I I-----> CloseGraph

    I {Действия в текстовом режиме}.

    I--------> end. - завершение программы.

    * proсedure InitGraph(var GraphDriver:integer;

    * var GraphMode:integer;

    * DriverPath:string);

    Инициализирует графическую систему, устанавливает графический

    режим, устанавливает исходные значения текущего указателя, палитры,

    цвета и т.д..

    ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ

    GraphDriver - переменная, в которую необходимо записать код

    требуемого графического драйвера или нуль, если

    требуется автоматическое определение драйвера.

    GraphMode - переменная, в которую процедура помещает код

    графического режима.

    DriverPath - строка, содержащая путь к драйверу (если строка

    пустая, считается, что драйвер находится в текущем

    каталоге).

    В случае аварийной ситуации процедура устанавливает код ошибки:

    -2 - нет графического адаптера;

    -3 - нет драйвера устройства;

    -4 - ошибка в драйвере;

    -5 - нет памяти для загрузки драйвера;

    -10 - недопустимый режим для выбранного драйвера.

    * procedure CloseGraph(без параметров);

    Восстанавливает текстовый режим работы дисплея,бывший до вызова

    графической системы, и освобождает динамическую память компьютера,

    отведенную под графический драйвер.

    * procedure SetGraphMode(Mode:integer);

    Mode - графический режим.Изменяет ранее используемый графи-

    ческий режим либо возвращает систему в прежний графический режим

    после временного перехода к текстовому режиму. Условием использо-

    вания оператора является сохранение в динамической области ОЗУ ранее

    загруженного графического драйвера.

    ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ

    * procedure RestoreCrtMode(без параметров);

    Восстанавливает исходный текстовый режим дисплея без потери в

    динамической области ОЗУ програмы графического драйвера.

    Имеется ряд операторов для получения справок о текущем

    графическом режиме:

    * function GetDriverName:string; -

    Возвращает строковое название

    текущего графического адаптера.

    * function GetModeName(ModeNumber:integer):string -

    Возвращает строковое название

    требуемого графического режима.

    * function GetMaxMode:integer -

    Возвращает максимальный номер

    графического режима для текущего

    адаптера.

    * procedure GetModeRange(GraphDriver:integer;

    * var LowMode,HighMode:integer); -

    Выдает справку о диапазоне номеров графических режимов задан-

    ного графического адаптера. Возвращаемые параметры LowMode и

    HighMode означают минимальный и максимальный номера графических

    режимов, соответственно.

    * function GetGraphMode:integer; -

    Возвращает номер текущего графического режима.

    ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ

    * procedure GetAspectRatio(var Xasp, Yasp:word); -

    Возвращает в своих параметрах ввеличины

    дискретов экрана по осям X и Y ,сооответственно.

    0

    УПРАВЛЕНИЕ КУРСОРОМ И ПОЛЕМ РИСОВАНИЯ

    В графическом режиме также как и в текстовом положение выво-

    димых на экран данных в каждый момент времени определяется курcо-

    ром. Однако, в этом случае курсор невидим. При вхождении в гра-

    фический режим с помощью процедуры InitGraph курсор автоматически

    помещается в левый верхний угол экрана, фон экрана принимает первый

    (черный) цвет палитры. Для определения и изменения положения курсора

    без рисования в TURBO-PASCAL предусмотрены операторы MoveTo,MoveRel,

    GetX,GetY.

    * procedure MoveTo(x,y:integer);

    где x,y - координаты по горизонтали и вертикали соответственно

    в отсчете от левого верхнего угла экрана.

    * procedure MoveRel(Dx,Dy:integer);

    Смещает курсор без рисования относительно его текущего поло-

    жения. Dx, Dy - смещения курсора по координатам x и y.

    * function GetX: word;

    Определяет для курсора значение координаты X.

    * function GetY: word;

    Определяет для курсора значение координаты Y.

    УПРАВЛЕНИЕ КУРСОРОМ И ПОЛЕМ РИСОВАНИЯ

    При управлении положением курсора полезными оказываются также

    справочные функции GetMaxX и GetMaxY, которые возвращают координаты

    самой правой и самой нижней возможных графических позиций курсора,

    соответственно, для текущего графического драйвера и режима.

    * procedure ClearDevice;

    Очищает экран от следов предшествовавшего рисования и восста-

    навливает исходные параметры графики.

    * procedure SetViewPort(X1,Y1,X2,Y2:word;Clip:boolean);

    Устанавливает прямоугольное окно рисования с перемещением

    курсора в левый верхний угол окна. Параметры процедуры имеют следу-

    ющий смысл:(X1,Y1) и (X2,Y2) определяют соответствввенно координаты

    левого верхнего и правого нижнего углов окна, а Clip принимает

    значение true при необходимости отсечения изображения за границами

    окна и false, когда этого делать не надо .

    * procedure ClearViewPort;

    Очищает текущее окно, заполняя его первым цветом текущей

    цветовой палитры, и переводит курсор в левый верхний угол окна.

    * procedure GetViewSettings(var ViewPortType);

    Возвращает параметры активного окна просмотра в переменной

    ViewPort. Тип ViewPortType описан в модуле Graph.

    0

    ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

    В данном разделе не рассматривается управление

    цветом и стилем рисования и закрепляется за

    фоном светло-серый, а за курсором синий цвет.

    * procedure LineTo(X,Y:integer);

    щ

    Проводит отрезок прямой от текущего положения

    курсора к заданной точке (X,Y).

    * procedure LineRel(Dx,Dy:integer);

    2

    Рисует отрезок прямой по направлению к точке,

    смещенной от текущего положения курсора на рас-

    стояние Dx и Dy по осям OX и OY .

    * procedure Line(X1,Y1,X2,Y2:integer);

    3

    Проводит прямую между точками (X1,Y1) и

    (X2,Y2).

    После выполнения этой и последующих процедур

    курсор возвращается в предшествующее положение.

    ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

    * procedure Rectangle(X1,Y1,X2,Y2:integer);

    4

    Строит контуры прямоугольника с координатами

    левого верхнего (X1,Y1) и нижнего правого

    (X2,Y2) углов.

    * procedure Bar(X1,Y1,X2,Y2:integer);

    5

    Строит прямоугольник, закрашенный текущим цветом

    и орнаментом заполнения. (X1,Y1), (X2,Y2) -

    координаты левого верхнего и правого нижнего

    углов соответственно.

    * procedure Bar3D(X1,Y1,X2,Y2:integer;

    * Depth:word;Top:boolean)

    6

    Рисует аксонометрию закрашенного по фасаду

    прямоугольного параллелепипеда.

    (X1,Y1),(X2,Y2) - координаты левого верхнего и

    правого нижнего углов

    прямоугольного фасада.

    Depth - ширина боковой грани (отсчитывается по

    годизонтали.

    Top - признак включения верхней грани.

    ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ ИЗОБРАЖЕНИЙ

    * procedure DrawPoly(NumPoints:word;

    * var PolyPoints);

    7Строит ломаную линию.

    NumPoints - число вершин многоугольника

    PolyPoints - переменная без типа, содержащая

    NumPoints+1 пар координат вершин многоугольника

    (первая и последняя вершины должны совпадать).

    * procedure FillPoly(NumPoints:word;var PolyPoints);

    8

    Закрашивает многоугольник текущим цветом и

    орнаментом. Параметры NumPoints и PolyPoints

    именют тот же смысл и тип, что и одноимеынные

    параметры процедуры DrawPoly.

    0

    01С ПОМОЩЬЮ КАКИХ ПРОЦЕДУР МОЖНО НАИБОЛЕЕ РАЦИОНАЛЬНО ПОСТРОИТЬ

    ОТРЕЗОК , ЕСЛИ ИЗВЕСТНЫ КООРДИНАТЫ КОНЦОВ?

    1 LineTo(X,Y);

    Line(X1,Y1,X2,Y2);

    2 Line(X1,Y1,X2,Y2);

    DrawPoly(NumPoint,PolyPoints);

    3 LineTo(X,Y);

    Line(X1,Y1,X2,Y2);

    DrawPoly(NumPoint,Poly Points);

    4 Line(X1,Y1,X2,Y2);

    *

    02КАК ПОСТРОИТЬ СТОЛБЧАТУЮ ДИАГРАММУ В ЗАРАНЕЕ СФОРМИРОВАННОЙ РАМКЕ?

    1

    1 Bar3D(X1,Y1,X2,Y2,Depth,true);

    SetViewPort(X1,Y1,X2,Y2,false);

    ClearViewPort;

    Bar3D(X1,Y2,X2,Y3,Depth,false);

    2 Bar3D(X1,Y1,X2,Y2,Depth,true);

    SetViewPort(X1,Y1,X2,Y2,Depth,true);

    ClearViewPort;

    Bar3D(X1,Y1,X2,Y3,Depth,false);

    3 Bar3D(X1,Y1,X2,Y2,Depth,true);

    Bar3D(X1,Y2,X2,Y3,Depth,false);

    4 Bar3D(X1,Y1,X2,Y2,Depth,true);

    Bar3D(X1,Y2,X2,Y3,Depth,true);

    *

    03КАК НА ПОЛНОСТЬЮ ЗАКРАШЕННОМ ЭКРАНЕ ПОЛУЧИТЬ НЕЗАКРАШЕННУЮ ПРЯМОУ-

    ГОЛЬНУЮ ОБЛАСТЬ?

    1 Bar(X1,Y1,X2,Y2);

    SetViewPort(X1,Y1,X2,Y2,true);

    ClearViewPort;

    2 Bar(X1,Y1,X2,Y2);

    3 Bar3D(X1,Y1,X2,Y2,Depth,true);

    4 Bar3D(X1,Y1,X2,Y2,false);

    *

    04КАК ИСКЛЮЧИТЬ ПОЯВЛЕНИЕ НА ЭКРАНЕ ЗАТЕНЯЕМЫХ КОНТУРОВ НИЖНЕГО

    2 ПАРАЛЛЕЛЕПИПЕДА В ОБЬЕМНОЙ СТОЛБЧАТОЙ ДИАГРАММЕ?

    1 Использовать процедуру Bar3D дважды. построенный верхний парал-

    лелепипед "закроет" автоматически верхнюю грань нижнего парал-

    лелепипеда.

    2 Установить параметр Top=false в процедуре Bar3D при построении

    нижнего параллелепипеда.

    3 Установить параметр Top=false в процедуре Bar3D при построении

    верхнего параллелепипеда.

    4 Построить ломаную линию соответствующую контурам верхней грани

    нижжнего параллелепипеда с помощью процедуры DrawPole и закра-

    сить его в белый цвет с помощью процедуры FillPole.

    *

    05КАК НА ЭКРАНЕ ЗАКРАСИТЬ БЕЛЫМ ЦВЕТОМ ОБЛАСТЬ, ОГРАНИЧЕННУЮ ЗВЕЗДОЙ?

    1 Построить звезду с помощью процедуры DrawPole(10,zve),где zve -

    константа типа PointType, является массивом координат вершин

    фигуры и содержит 10 элементов.

    2 Использовать процедуру DrawPole(10,zvez) , где константа zvez

    содержит 11 элементов.

    3 Применить процедуру FillPole(10,zves), где константа zves содер-

    жит 11 элементов.

    4 Установить цвет рисования белый и с помощью процедуры

    FillPole(10,zves) построить звезду, закрашенную белым цветом.

    *

    06С ПОМОЩЬЮ КАКОЙ ПРОЦЕДУРЫ ИЛИ ФУНКЦИИ ВОЗМОЖНО УСТАНОВИТЬ СТРОКОВОЕ

    НАЗВАНИЕ ТЕКУЩЕГО ГРАФИЧЕСКОГО АДАПТЕРА?

    1 Функция GetDriverName;

    2 Функция GetModeName(ModeNumber);

    3 Функция GetMaxMode;

    4 Процедура GetModeRange(GraphDriver;LowMode,HighMode);

    *

    07СУЩЕСТВУЕТ ЛИ ВОЗМОЖНОСТЬ ОПРЕДЕЛЕНИЯ ЗНАЧЕНИЯ КООРДИНАТ КУРСОРА.

    1 Нет

    2 Да, с помощью функций GetX, GetY.

    3 Да, с помощью функций GetMaxX, GetMaxY.

    4 Да, с помощью функции MoveRel.

    *

    08С ПОМОЩЬЮ КАКОГО ФРАГМЕНТА ПРОГРАММЫ МОЖНО ВЫВЕСТИ НА ЭКРАН

    3 СЛЕДУЮЩУЮ КАРТИНКУ? КУРСОР НАХОДИТСЯ В ТОЧКЕ (X1,Y1).

    1 Line(X,Y,X1,Y1);

    MoveRel(X,Y+dY);

    Line(X,Y+dY,X1,Y1);

    MoveRel(0,dY);

    LineTo(X1,Y1);

    2 LineTo(X1,Y1);

    LineRel(0,dY);

    LineRel(0,2dY);

    3 LineTo(X,Y);

    MoveRel(0,dY);

    Line(X,Y+dY,X1,Y1);

    MoveRel(0,dY);

    Line(X,Y+2dY,X1,Y1);

    4 LineTo(X,Y);

    LineRel(0,dY);

    LineRel(0,2dY);

    *

    09ГДЕ ПОМЕЩАЕТСЯ КУРСОР И КАКОЙ ФОН ЭКРАНА УСТАНАВЛИВАЕТСЯ ПРИ

    ВХОЖДЕНИИ В ГРАФИЧЕСКИЙ РЕЖИМ С ПОМОЩЬЮ ПРОЦЕДУРЫ InitGraph?

    1 Курсор помещается в центр экрана и устанавливается черный

    цвет фона экрана.

    2 Курсор помещается в правый верхний угол экрана и устанав-

    ливается черный цвет фона экрана.

    3 Курсор помещается в левый верхний угол экрана и устанавлива-

    ется черный цвет фона экрана.

    4 Курсор помещается в левый верхний угол экрана и устанавлива-

    ется белый цвет фона экрана.

    *

    10С КАКОЙ ЧАСТОТОЙ ОБНОВЛЯЕТ ЭКРАН КОНТРОЛЛЕР ДИСПЛЕЯ ПЭВМ IBM?

    1 50-60 раз/сек

    2 20-40 раз/сек

    3 100-120 раз/сек

    4 200 раз/сек

    *

    0

    011Процедуру LineTo(X,Y) можно использовать только в случае, когда 002

    один из концов отрезка совпадает с положением курсора.

    *

    2Ответ правильный. Однако, применение процедуры DrawPoly в данном 004

    случае не является рациональным.

    *

    3Процедуру LineTo(X,Y) можно использовать только в случае, когда один002

    из концов отрезка совпадает с положением курсора. Процедура DrowPoly

    не является в данном случае рациональной.

    *

    4Ответ правильный. 005

    *

    *

    021Отввет неверный. Верхний параллелепипед будет иметь очищенную перед-002

    нюю грань. Это не требуется по условию задачи. При этом неверно

    указаны параметры процедуры Bar3D при построении второго параллеле-

    пипеда.

    *

    2Неправильно указаны параметры процедуры SetViewPort. Координаты окна002

    отсчитываются от левого верхнего угла экрана в то время как для про-

    цедуры Bar3D от левого верхнего угла окна.

    *

    3Ответ правильный. 005

    *

    4Ответ не точный.На экране появятся затененные контуры нижнего парал-003

    лелепипеда.

    *

    *

    031Ответ не точный.Процедуры SetViewPort и ClearViewPort в данном слу- 003

    чае излишние,т.к.уже процедура Bar рисует прямоугольную область,

    которую закрашивает первым цветом палитры, если цвет не задан ранее

    *

    2Ответ правильный 005

    *

    3Процедура Bar3D рисует аксонометрию прямоугольного параллелепипеда,а002

    не прямоугольную область.

    *

    4Процедура Bar3D рисует аксонометрию прямоугольного параллелепипеда,а002

    не прямоугольную область.

    *

    *

    041Ответ неверный. Процедура Bar3D рисует контуры аксонометрии закра- 002

    шенного по фасаду параллелепипеда. Боковая и верхняя грани не закра-

    шиваются, т.о. затемненная часть верхней грани нижнего параллелепи-

    педа не исчезнет.

    *

    2Ответ правильный. 005

    *

    3Ответ неверный. Параметр Top процедуры Bar3D регулирует наличие или 002

    отсутствие верхней (а не нижней) левой грани аксонометрии.

    *

    4Ответ неверный. Достаточно установить параметр Top=False процедуры 002

    Bar3D. Дополниетльные меры излишне.

    *

    *

    051Ответ неверный. Процедура DrawPoly построит звезду с одной невидимой002

    гранью. Цвет фигуры будет соответствовать цвету фона.

    *

    2Ответ неверный. Цвет фигуры будет соответствовать цвету фона и будет002

    белым только в случае, когда фон экрана белый.

    *

    3Ответ правильный. 005

    *

    4Ответ правильный. Однако, закраска белым цветом возможна и 004

    по умолчанию.

    *

    *

    061Ответ правильный. 005

    *

    2Ответ неверный. Функция GetModeName возвращает строковое название 002

    требуемого графического режима для текущего адаптера.

    *

    3Ответ неверный.Функция GetMaxMode возвращает максимальный номер 002

    графического режима для текущего адаптера.

    *

    4Ответ неверный. Процедура GetModeRange выдает справку о диапазоне 002

    номеров графических режимов заданного графического адаптера.

    *

    *

    071Ответ неверный. Такая возможность существует. 002

    *

    2Ответ правильный. 005

    *

    3Ответ неверный. Данные процедуры возвращают максимально возможные 002

    для текущего драйвера и режима графические позиции курсора.

    *

    4Ответ неверный. Процедура MoveRel смещает курсор относительно его 002

    текущей позиции.

    *

    *

    1081Ответ неверный. Рисунок будет иметь следующий вид: 002

    *

    2 2Ответ неверный.Рисунок будет иметь следующий вид: 002

    *

    3Ответ правильный. 005

    *

    3 4Ответ неверный. рисунок будет иметь следующий вид: 002

    *

    *

    091Ответ неверный. 002

    *

    2Ответ неверный. 002

    *

    3Ответ правильный. 005

    *

    4Ответ неверный. 002

    *

    *

    101Ответ правильный. 005

    *

    2Ответ неверный. 002

    *

    3Ответ неверный. 002

    *

    4Ответ неверный. 002

    *

    *

    0

    УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЙ

    В данном разделе мы рассмотрим возможности управления цветовой

    палитрой и стилем рисования.

    * procedure GetPalette(var PaletteType);

    Возвращает текущую плитру и количество цветов в ней. Применя-

    ется только в графическом режиме и только с драйверами EGA, EGA 64

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.