Основы современных компьютерных технологий

         

Базовые процедуры и функции


Для построения изображения на экране используется прямоугольная система координат. Отсчет начинается от верхнего левого угла экрана с нуля. Значение X (столбец) увеличивается слева направо, значение У (строка) увеличивается сверху вниз. Чтобы строить изображение, необходимо указывать точку начала вывода. В графических режимах существует невидимый текущий указатель СР (Current Pointer). Процедура MoveTo(X, У) перемещает текущий указатель в точку с координатами X,У. Процедура MoveRel(dX, dY) перемещает СР на dXточек по горизонтали и на dY точек по вертикали относительно СР. Для контроля местоположения СР используют функции GetX и GetY, которые возвращают соответственно значения Х- и У-координаты СР. Для того, чтобы узнать максимально допустимые значения СР для установленного режима, используются функции GetMaxX: integer и GetMaxY: integer.

Графический экран может рассматриваться как одно большое или несколько меньших по размеру окон. Окно - это прямоугольная область экрана, выполняющая функции полного экрана. После установки окна остальная площадь экрана как бы не существует и весь ввод-вывод осуществляется через это окно. В каждый момент может быть активным только одно окно. Если окон несколько, то за переключение ввода-вывода в нужное окно отвечает программист. Для создания окна предназначена процедура

SetViewPort(x1, х2, у1, у2: integer; Clip: boolean),

где х1, у1 - координаты левого верхнего угла, х2, у2 -координаты правого нижнего угла окна. Параметр Clip определяет, будет рисунок отсекаться при выходе за границы окна (Clip:=True) или нет.

Для очистки окна используется процедура ClearVierPort. После ее выполнения все изображения в окне стираются и СР устанавливается в левую верхнюю точку окна. Координатную систему полного экрана можно восстановить с помощью ClearDevice или задав в процедуре установки окна максимально возможные значения:

SetViewPort(0,0, GetMaxX, GetMaxY, True).

Атрибуты текущего окна можно получить с помощью процедуры GetViewSetting (Var Vp: ViewPortType).
Переменная Vp относится к стандартному типу ViewPortType:

  • Туре


  • ViewPortType=RECORD


  • х1,х2, у1,у2: integer;


  • Clip: boolean


  • 383

  • end;


  • Фон ("закраска") графического окна устанавливается с помощью процедур SetFillPattern и Ваг, например:



    SetViewPort( 100, 50,500, 200, True);

    SetFillStyle(1,3); (*выбор типа фона*)

    Bar(100,50,500,200); (*формирование фона*)

    В библиотеке GRAPH вывод точки осуществляется процедурой PutPixel(X, Y: integer; Colonword), где X, Y - экранные координаты расположения точки, Color - ее цвет (от 0 до 15). Для определения цвета точки в конкретной позиции экрана служит функция GetPixel(X, Y: integer): word. Из точек возможно построение линий. Это выполняет процедура Line(X7, Y1, Х2, Y2), где Х1, Y1 - координаты начала, Х2, Y2 - координаты конца линии. Например:

    Line(1,1,200,1).

    Для черчения линий применяются также еще две процедуры: LineTo(X, Y) и LineRel(c/X, с/У). Первая строит линию из точки текущего положения указателя в точку с координатами X, Y; а вторая проводит линию от точки текущего расположения указателя в точку СРх+dХ, СРу+dY, где СРх и СРу - текущие координаты СР. Установка стиля (тонкие, широкие, штриховые пунктирные линии и т.д.) производится процедурой SetLineStyle (LineStyle: word; Pattern: word; Thickness: word). Параметр LineStyle устанавливает тип строки, который может быть задан поименованной константой или соответствующим ей цифровым значением из табл. 27.3, Pattern -

    Таблица 27.3

    Тип линии

    КОНСТАНТА ЗНАЧЕНИЕ ОПИСАНИЕ
    SolidLn 0 Непрерывная линия
    DottedLn 1 Линия из точек
    CentedLn 2 Линия из точек и тире
    DashedLn 3 Штриховая линия
    UserLn 4 Тип пользователя
    образец, Thickness - толщину линии, определяемую константами из табл. 27.4.

    Таблица 27.4

    Толщина линии

    КОНСТАНТА ЗНАЧЕНИЕ ОПИСАНИЕ
    NormWidth 1 Нормальная толщина
    ThickWidth 3 Жирная линия
    384

    Процедура GetLineSettings(Var linelnfo: LineSettingsType) возвращает текущий стиль, образ и толщину линии, установленные SetLineStyle.


    Тип LineSettingsType имеет следующее стандартное описание:

  • Туре


  • LineSettingType=Record


  • LineStyle: word;


  • Pattern: word;


  • Thickness: word end;


  • Для установления режима вывода (копирование или наложение) линии на экран предназначена процедура SetWriteMode(Mode). Значение Mode определяется стандартными константами:

  • Const


  • CopyPut=0;


  • XORPut=1;


  • Аргумент Mode может принимать одно из двух значений. Если Mode=0, то пикселы, лежащие на отрезке прямой линии, переопределяют пикселы на экране и линия на экране имеет текущий цвет. Если Mode=1, то пикселы, образующие линию, имеют код цвета, равный результату операции исключающее ИЛИ над кодами текущего цвета и цвета пикселов на экране, через которые эта линия проходит.

    385

    383 :: 384 :: 385 :: Содержание


    Содержание раздела