Программирование видеоадаптеров CGA,EGA и VGA


15. Основные графические функции


15.1. Функция _setpixel()

15.2. Функция _lineto()

15.3. Функция _moveto()

15.4. Функция _rectangle()

15.5. Функция _ellipse()

15.6. Функция _arc()

15.7. Функция _pie()

15.8. Функция _setcolor()

15.9. Функция _selectpalette()

15.10. Функция _setlinestyle()

15.11. Функция _setviewport()

15.12. Функция _setvieworg()

15.13. Функция _setvideomoderows()

15.14. Функция _getimage()

15.15. Функция _putimage()

15.16. Функция _imagesize()

Глава знакомит читателей с основными функциями стандартной графической библиотеки трансляторов Microsoft Quick C 2.5 и C 6.0. Функции, описанные в этой главе, предоставляют программисту разнообразные возможности управления графическим экраном дисплея.

Описаны функции отображения простых графических объектов, таких как точка, прямая, эллипс, прямоугольник, функции, управляющие системой координат, а также функции, применяемые для сохранения и вывода на экран прямоугольных областей экрана (спрайтов).

Каждая группа функций сопровождается примерами программ.

15.1. Функция _setpixel()
Функция устанавливает цвет пиксела в заданной позиции экрана. Приведем прототип этой функции: short _setpixel( short x, short y ); Цвет пиксела устанавливается предварительно функцией _setcolor()....
15.2. Функция _lineto()
Функция рисует на экране линию. Ее прототип приведен ниже: short _lineto( short x_target, short y_target ); Линия начинается в текущей точке и заканчивается в точке, имеющей координаты (x_target,...
15.3. Функция _moveto()
Функция изменяет положение текущей точки. Используется совместно с _lineto() для изображения линий. Прототип функции _moveto() имеет следующий вид: struct xycoord _moveto( short x, short y ); Новы...
15.4. Функция _rectangle()
Функция рисует прямоугольник. В зависимости от параметров функции прямоугольник может быть закрашенным или не закрашенным. Прототип функции имеет следующий вид: short _rectangle( short fill, short...
15.5. Функция _ellipse()
Функция рисует эллипс. Приведем прототип этой функции: short _ellipse( short fill, short x_left, short y_top, short x_right, short y_bottom ); Эллипс задается прямоугольником, в кото...
Построение эллипса функцией _ellipse().
Рисунок 16.1 Построение эллипса функцией _ellipse(). Граница эллипса изображается текущим цветом. Если аргумент fill функции равен _GFILLINTERIOR, то эллипс закрашивается, а если _GBORDER - то не...
15.6. Функция _arc()
Функция рисует дугу эллипса. Прототип функции _arc() имеет следующий вид: short _arc( short x_left, short y_top, short x_right, short y_bottom, short x_begin, short y_begin, short x_end, s...
Построение дуги эллипса функцией _arc().
Рисунок 16.2 Построение дуги эллипса функцией _arc(). Функция возвращает ненулевую величину, если она выполнилась успешно и ноль, если произошла ошибка....
15.7. Функция _pie()
Функция рисует сектор эллипса: short _pie( short fill, short x_left, short y_top, short x_right, short y_bottom, short x_begin, short y_begin, short x_end, short y_end ); Эллипс задается прямо...
Рисунок16.3 Построение сектора эллипса при помоши функции _pie().
Рисунок 16.3   Построение сектора эллипса при помоши функции _pie(). Граница эллипса изображается текущим цветом. Если поле fill равно _GFILLINTERIOR, то эллипс закрашивается,...
15.8. Функция _setcolor()
В графическом режиме видеоадаптера функция _setcolor() устанавливает текущий цвет, используемый функциями _setpixel(), _lineto(), _rectangle(), _ellipse(), _arc(), _pie(). Прототип функции _setcol...
15.9. Функция _selectpalette()
Функция изменяет цветовую палитру для режимов _MRES4COLOR и _MRESNOCOLOR. В этих режимах цветовая палитра содержит четыре цвета - цвет фона, выбираемый отдельно и три цвета, устанавливаемых функци...
15.10. Функция _setlinestyle()
Функция определяет маску, используемую при рисовании линий функцией _lineto(): void _setlinestyle( unsigned short mask ); Единственный параметр функции является набором из 16 бит. Каждый бит соотв...
15.11. Функция _setviewport()
Мы будем использовать две различные системы координат - физическую и логическую. Начало физической системы координат находится в левом верхнем углу экрана дисплея. Оси координат x и y направлены с...
15.12. Функция _setvieworg()
Функция перемещает начало логических координат (точку (0, 0)) в точку экрана, имеющую физические координаты (x, y). Прототип функции имеет следующий вид: struct xycoord _setvieworg( short x, short...
15.13. Функция _setvideomoderows()
Данная функция, также как и функция _setvideomode(), позволяет изменить режим работы видеоадаптера. Но для текстовых режимов она позволяет устанвить нестандартное число строк. Функция имеет следую...
15.14. Функция _getimage()
Функция имеет следующий прототип: _getimage( short x_first, short y_first, short x_second, short y_second, char _huge *image ); Она записывает содержимое прямоугольной области экрана, опреде...
15.15. Функция _putimage()
Функция имеет следующий прототип: void _putimage( short x, short y, char _huge *image, short action ); Функция помещает пиктограмму, записанную в буфере image, на экран. При этом верхняя...
15.16. Функция _imagesize()
Функция возвращает размер буфера (в байтах), необходимого для сохранения прямоугольного участка экрана дисплея, задаваемого двумя диагонально противоположными точками - (x_first, y_first) и (x_sec...








Начало