Читайте также:
|
|
ЗАНЯТИЕ 6
Лекция
На экране персонального компьютера можно получать не только последовательность букв, цифр и других символов, но и разнообразные рисунки, схемы и т.д. Для отображения графической информации используют графические дисплеи. Наибольшее распространение получили дисплеи растрового типа. Слово "растр" произошло от латинского rastrum — грабли, мотыга. Растром обычно называются регулярные упорядоченные структуры — решетки, полосы и т.п., очевидно, по сходству со следом граблей. Главными достоинствами растровых дисплеев является возможность получения тоновых и цветных изображений за счет высвечивания всех точек, лежащих внутри закрашенной области, а также простота конструкции и стабильность изображения.
Экран растрового дисплея разбит на фиксированное число точек, которые образуют матрицу из фиксированного числа строк и столбцов. Изображение на экране дисплея создается путем избирательной засветки электронным пучком определенных точек экрана. В растровом мониторе электронный пучок сканирует экран слева направо и сверху вниз (в цветных мониторах имеется три таких пучка), высвечивая только те точки, которые нужны для формирования изображения. Достигнув правого края экрана, пучок гасится и возвращается к левому краю, смещаясь на одну строку точек вниз. Таким образом, электронный пучок сканирует весь экран (как правило, 25 или 50 раз в секунду) и все изображение перерисовывается cтолько же раз. Чтобы изображение в растровом дисплее могло восприниматься глазом, оно должно быть составлено из многих сотен точек, для генерации каждой из которых требуется отдельная машинная команда. Наименьшим элементом изображения, который может быть показан на экране такого диcплея, является маленькое светящееся пятно, именуемое точкой или пикселем (picture element). В растровом дисплее это минимальная единица изображения, цвет и яркость которой можно задать независимо от остального изображения.
Каждый пиксель характеризуется своими координатами, то есть парой целых чисел (X,Y):
X — расстояние до заданной точки по горизонтали;
Y — расстояние до заданной точки по вертикали.
В представленной на рис.1 системе координат точка, расположенная в верхнем левом углу, имеет координаты (0,0).
Рис.1 Система координат графического экрана
Для получения изображения на экране компьютера прежде всего нужно перевести экран в графический режим, для этого необходимо вызвать процедуру INITGRAPH. Дальше можно использовать процедуры построения точек, линий, прямоугольников, окружностей, эллипсов (см. таблицу).
Для того, чтобы посмотреть результат работы программы и задержать полученное изображение на экране компьютера, можно использовать процедуру ожидания нажатия клавиши READKEY. И в конце программы необходимо закрыть графический режим процедурой CLOSEGRAPH. Обращаем ваше внимание на то, что если не закрыть графику, то Микропаскаль подвиснет (обидется на вас), и вам придется перезапускать программу.
Все процедуры, необходимые для работы с графическим экраном в среде Микропаскаль, вызываются с помощью команды CALL (клавиши <Alt>+F5). После нажатия указанных клавиш в тексте программы появится строка со знаком вопроса. Надо заменить вопрос на требуемую команду.
Работа с графикой и графические процедуры различны в разных средах программирования и для разных реализаций языка Паскаль.
Стандартные гpафические пpоцедуpы
(среда Микропаскаль)
Вызов пpоцедуpы | Параметры | Назначение процедуры | ||
Процедуры управления графическим режимом | ||||
INITGRAPH | НЕТ | Устанавливает графический режим: 640x350 точек, 16 цветов | ||
CLOSEGRAPH | НЕТ | Закрывает графический режим | ||
Процедура работы с точками | ||||
PUTPIXEL(X1,Y1,C) | X,Y,C - значения типа INTEGER | Ставит точку с координатами (X,Y) цветом C | ||
Процедуры работы с линиями | ||||
LINE(X1,Y1,X2,Y2,C) | X1,Y1, X2,Y2,С - INTEGER | Проводит линию цвета C из точки с координатами (X1,Y1) в точку с координатами (X2,Y2) | ||
LINETO(X,Y,C) | X,Y,С - INTEGER | Проводит линию цвета C из текущей позиции графического курсора в точку с координатами (X,Y) | ||
MOVETO(X,Y) | X,Y - INTEGER | Перемещает графический курсор из текущей позиции в точку с координатами (X,Y) | ||
SETLINESTYLE(N,Р) | N,Р - INTEGER N - [0:3] Р - [0:1] | Устанавливает тип линии N и толщину линии Р. Типы линии: 0 - сплошная; 1 - пунктирная; 2 - штрихпунктирная; 3 - штриховая. Толщина линии: 0 - обычная; 1 - жирная. | ||
Процедуры построения фигур из линий | ||||
RECTANGLE (X1, Y1, X2, Y2, C) | X1,Y1, X2,Y2,С - INTEGER | Строит контур прямоугольника цветом С; X1, Y1, X2, Y2 - координаты любой диагонали прямоугольника; | ||
BAR(X1,Y1,X2,Y2) | X1,Y1, X2,Y2 - INTEGER | Строит закрашенный прямоугольник; X1, Y1, X2, Y2 - координаты любой диагонали прямоугольника; | ||
SETFILLSTYLE(N,C) | N,C - INTEGER N - [0:9] C - [0:15] | Устанавливает шаблон N и цвет закpаски прямоугольника C (см. таблицу шаблонов закраски) | ||
Процедуры построения криволинейных фигур | ||||
CIRCLE (X, Y, R, C) | X,Y,R,C - INTEGER | Строит окpужность цветом C; X,Y - координаты центpа окружности; R - pадиус окружности | ||
ARC (X, Y, StAngle, EndAngle, R, C) | X,Y,StAngle, EndAngle,R,C - INTEGER | Строит дугу окpужности цветом C; X,Y - координаты центpа окружности; R - pадиус дуги; StAngle - угол до начальной точки дуги в градусах (отсчитывается против часовой стрелки от горизонтальной оси, направленной слева направо); EndAngle - угол до конечной точки дуги в градусах | ||
ELLIPSE (X, Y, StAngle, EndAngle, RX, RY, C) | X,Y, StAngle, EndAngle,RX,RY,C - INTEGER | Строит эллипс или дугу эллипса цветом C; X,Y - координаты центpа эллипса; StAngle - угол до начальной точки эллипса в градусах (отсчитывается против часовой стрелки от горизонтальной оси, направленной слева направо); EndAngle - угол до конечной точки эллипса в градусах; RX, RY - горизонтальная и вертикальная полуоси эллипса. | ||
Процедура ожидания нажатия клавиши | ||||
READKEY | НЕТ | Задерживает графическое изображение на экране | ||
Таблица кодов цветов
Black | =0 (черный) |
Blue | =1 (синий) |
Green | =2 (зеленый) |
Cyan | =3 (голубой) |
Red | =4 (красный) |
Magenta | =5 (фиолетовый) |
Brown | =6 (коричневый) |
LightGray | =7 (светло- серый) |
DarkGray | =8 (темно- серый) |
LightBlue | =9 (ярко- синий) |
LightGreen | =10 (ярко- зеленый) |
LightCyan | =11 (ярко- голубой) |
LightRed | =12 (розовый) |
LightMagenta | =13 (малиновый) |
Yellow | =14 (желтый) |
White | =15 (белый) |
Шаблоны закраски
(для процедуры SETFILLSTYLE)
Код | Значение |
штpиховка фоном (узоp отсутствует) сплошная штpиховка штpиховка линиями штpиховка ///// штpиховка утолщенными ///// штpиховка \\\\\ штpиховка утолщенными \\\\\ штpиховка клеткой +++++ штpиховка косой клеткой ххххх штpиховка частой клеткой |
Пример 1. Программа ставит на экране точку с координатами (X,Y) цвета С. Значения координат и цвета вводятся с клавиатуры.
PROGRAM z1;
VAR x,y,c: INTEGER;
BEGIN { ******* MAIN PROGRAM ******* }
WRITELN('Введите координаты и цвет точки');
READLN(x,y,c);
InitGraph;
PutPixel(X,Y,C);
ReadKey;
CloseGraph;
END.
Дата добавления: 2015-04-20; просмотров: 143 | Поможем написать вашу работу | Нарушение авторских прав |