Российский государственный гуманитарный университет
Опубликован: 13.07.2022 | Доступ: свободный | Студентов: 264 / 9 | Длительность: 11:54:00
Специальности: Программист
Лекция 3:

Представление графической информации

Рассмотрим также примеры других видов графики - пиксельную и символьную.

В пиксельной графике изображение строится на уровне пикселей в растровом редакторе с малым разрешением. Эта графика используется для создания компьютерных игр на устройствах с малым разрешением экрана (рис. 3.9 (a)).

В символьной графике изображение создается в текстовой форме из набора символов таблицы ASCII (рис. 3.9 (b)). Сначала подобные изображения создавались на печатных машинках, затем с помощью программ на ЭВМ. Данное направление называется ASCII-артом. Расширением ASCII-графики является ANSI-графика, в которой для создания изображения используются 224 печатных символа и цвет.

Изображение (a) пиксельное; (b) символьное

Рис. 3.9. Изображение (a) пиксельное; (b) символьное

Пример 15. Ниже приведен ASCII-рисунок и 16-ричные коды символов каждой строки (см. табл. 2.6):

(\___/)			28 5c 5f 5f 5f 2f 29
(=' . '=)			28 3d 27 20 2e 20 27 3d 29
(") _ (")			28 22 29 20 5f 20 28 22 29

Графические примитивы. Кривые Безье

Ниже рассматриваются некоторые способы представления основных графических примитивов в языках программирования, обсуждаются понятия кривой Безье и B-сплайна, приводятся примеры их построения.

Примитивы - набор графических объектов, с помощью которого конструируются другие, более сложные графические объекты.

Основные графические примитивы

В клиентской области окна используется прямоугольная система координат, начало координат которой находится в левом верхнем углу, ось абсцисс направлена вправо, ось ординат - вниз, единицей измерения является пиксель (рис. 3.10). Ниже приведены примеры представления геометрических объек

  1. Точка (point) представляется двумя координатами (x, y).

     Система координат окна; точка и отрезок

    Рис. 3.10. Система координат окна; точка и отрезок
  2. Отрезок (line) определяется двумя точками - его концами.
  3. Прямоугольник (rectangle) может представляться

    • координатами противоположных вершин ( рис. 3.11 (a)), правой верхней и левой нижней или наоборот;
    • координатами левой верхней вершины, а также шириной (width) и высотой (height) прямоугольника (рис. 3.11 (b)).

       Представление прямоугольника и эллипса: (a) противоположными вершинами; (b) левой верхней вершиной, шириной и высотой; (c) описанным прямоугольником

      Рис. 3.11. Представление прямоугольника и эллипса: (a) противоположными вершинами; (b) левой верхней вершиной, шириной и высотой; (c) описанным прямоугольником

      Шириной прямоугольника называется длина его горизонтальной стороны, а высотой - длина вертикальной.

  4. Эллипс (ellipse) определяется описанным прямоугольником (рис. 3.11 (c)), иногда - центром и осями.
  5. Дуга (arc) и сектор (pie) эллипса рис. 3.12 представляются прямоугольником, описанным вокруг эллипса (см. выше п. 3), а также следующими двумя параметрами:

    • двумя точками на границе прямоугольника: дуга (сектор) эллипса заключается между лучами, которые соединяют центр прямоугольника и эти точки, в направлении против часовой стрелки ( рис. 3.12 (a));
    • величиной начального угла (\alpha) и угла раствора дуги (\beta) в градусах; начальный угол откладывается от точки касания эллипса правой стороны прямоугольника; углы откладываются в направлении по часовой стрелке (рис. 3.12 (b)).

       Представление дуги (a) двумя точками; (b) двумя углами; (c) сектор эллипса

      Рис. 3.12. Представление дуги (a) двумя точками; (b) двумя углами; (c) сектор эллипса
  6. Многоугольник (polygon) и ломаная (polyline) представляются массивом (списком) точек (рис. 3.13).

    (a) Многоугольник; (b) ломаная

    Рис. 3.13. (a) Многоугольник; (b) ломаная
  7. Скругленный прямоугольник (rounded rectangle), или прямоугольник с закругленными углами, определяется параметрами прямоугольника (см. выше), а также шириной и высотой эллипса (рис. 3.14 (a)), который используется для "скругления" (рис. 3.14 (b)): вместо угла отображается дуга эллипса - его четвертая часть (рис. 3.14 (c)).

     Скругление прямоугольника: (a) эллипс; (b) скругление; (c) прямоугольник с закругленными углами

    Рис. 3.14. Скругление прямоугольника: (a) эллипс; (b) скругление; (c) прямоугольник с закругленными углами

    Шириной эллипса называется длина его горизонтальной оси, а высотой - длина вертикальной оси.

    Максимальное закругление прямоугольника достигается, когда ширина и высота прямоугольника совпадают с шириной и высотой эллипса. В этом случае скругленный прямоугольник совпадает с эллипсом.

  8. Кривые Безье (Bezier curve) и сплайны (spline) представляются массивами (списками) точек (см. ниже). На рис. 3.15 показаны 4 точки (рис. 3.15 (a)) и построенные по ним кривая Безье (рис. 3.15 (b)), сплайн (curve) (рис. 3.15 (c)) и замкнутый сплайн (closed curve) (рис. 3.15 (d)).
 Кривые: (a) исходные точки; (b) кривая Безье; (c) сплайн;  (d) замкнутый сплайн

Рис. 3.15. Кривые: (a) исходные точки; (b) кривая Безье; (c) сплайн; (d) замкнутый сплайн