Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция №15. Использование графических возможностей языка↑ ⇐ ПредыдущаяСтр 5 из 5 Содержание книги
Поиск на нашем сайте
Цель -изучить возможности и особенности использования графики.
Пакет функций управления экраном делится на две части в соответствии с возможностями компьютера: работа в текстовом режиме (text mode) и работа в графическом режиме (graphics mode). Все функции управления экраном в текстовом режиме имеют свои прототипы в заголовочном файле conio.h. Управление экраном в графическом режиме производится с помощью набора функций, прототипы которых находятся в заголовочном файле graphics.h. Среди функций настройки графического режима следует выделить следующие: - void far detectgraph(int far *gdriver, int far *gmode); - предназначена для определения типа графического адаптера. Эта функция возвращает значения по адресам, указанным первым и вторым параметрами. Здесь gdriver - указатель на целое число, содержащее номер графического драйвера. Вторым параметром функции detectgraph будет указатель на целое число, содержащее номер графического режима, обеспечивающего максимальную разрешающую способность экрана. Если нет графического адаптера, то функция detectgraph присваивает *gdriver = -2. - void far initgraph(int far *gdriver, int far *gmode, char far *pathdriver); - предназначена для загрузки графического драйвера, имеющего номер *gdriver, и для установки графического режима номер *gmode. Если по адресу gdriver записан нуль (*gdriver=DETECT), то функция вначале обращается к функции detectgraph, а затем загружает драйвер, номер которого был установлен функцией detectgraph. Необходимая память для загрузки драйвера предоставляется в "куче". В зависимости от графического режима максимальная разрешающая способность экрана изменяется. Для выгрузки графического драйвера применяется функция, объявленная как void closegraph(void). Эта функция освобождает память из "кучи", занятую графическим драйвером. Инициализация графического режима производится следующим образом: #include <stdio.h> #include <graphics.h> #include <conio.h> void main() { int driver, mode;driver=registerbgidriver(EGAVGA_driver); driver = VGA; mode = VGAHI; initgraph (&driver, &mode, ""); closegraph();} После установки графического режима с помощью initgraph экран монитора представляет собой прямоугольную область, разбитую на одинаковые прямоугольники - пиксели, стороны которых параллельны верхней и нижней границам экрана. Пиксель (pixels) - это минимальный элемент изображения на экране, состоящий из нескольких (цветных) точек и рассматриваемый в программе как одна точка определенной яркости или цвета. Под координатами пикселя подразумеваются целочисленные координаты центров этих прямоугольников, отсчитываемые от координат центра левого верхнего прямоугольника. Чтобы вычислить разрешающую способность экрана по x и y, применяются функции int getmaxx(void), int getmaxy(void). Наиболее часто используется графический режим монитора, при котором поддерживается разрешение 640*480*16. Здесь 16 – это максимальное количество цветов, которое одновременно может присутствовать на изображении. В отличие от математической системы координат, графический экран выглядит так, как показано на рисунке 15.1. Рисунок 15.1 – Внешний вид графического экрана
В заголовочном файле graphics.h определены константы, соответствующие цветам стандартной палитры. Изменение одного из цветов стандартной палитры производится функцией void setpalette (int index, int color); где intindex – номер из стандартной палитры; int color – цвет в диапазоне от 0 до 63 (палитра EGA). Настройка палитры EGA осуществляется функцией void setrgbpalette (int color, int red, int green, int blue); где red, green и blue изменяются в диапазоне от 0 до 255, причем малым значениям соответствуют темные цвета, большим – более яркие. Графические функции, с которыми можно работать после установки графического режима, условно делятся на три группы: 1) состоит из функций, которые ничего не выводят на экран, но устанавливают некоторые параметры: например, функция setcolor задает номер цвета для дальнейшего вывода линий; 2) состоит из функций, которые осуществляют вывод на экран: например, чтобы вывести точку заданного цвета, применяется функция void putpixel(int x, int y, int color); 3) состоит из функций, которые ничего не выводят на экран, но позволяют получить информацию о выведенном изображении: например, для чтения цвета пикселя предназначена функция unsigned getpixel(int x, int y). Имена функций первой группы начинаются со слова set (ставить, помещать), а функции третьей группы – со слова get (получать, доставать). Графические функции производят вывод в страницу, которая называется активной. Коэффициентом сжатия экрана называется отношение ширины пикселя к его высоте. Коэффициент сжатия можно узнать с помощью функции void getaspectratio(int far *xasp, int far *yasp); Функция записывает по адресу yasp число 10000, а по адресу xasp - произведение коэффициента сжатия на 10000. Коэффициент сжатия учитывается при выводе окружностей, дуг окружностей и секторов круга. Коэффициент сжатия устанавливается при инициализации графического режима, исходя из режима, соответствующего максимальной разрешающей способности экрана, и может быть изменен с помощью функции void setaspectratio(int xasp, int yasp);. Группа линий на плоскости образует контурную фигуру (отрезок прямой линии, дугу, окружность, прямоугольник, эллипс и т. д.). Кроме формы, фигуры могут отличаться цветом линии (контура), ее толщиной или типом. По умолчанию, в графическом режиме существуют следующие настройки: текущий цвет контура – WHITE (белый), толщина – один пиксель, тип – сплошная линия. Плоскостные фигуры - это фрагменты плоскости экрана, ограниченные замкнутым контуром. Их можно получить из контурных путем закрашивания области внутри или вне замкнутой сплошной линии, образующей контур. Для отображения наиболее часто используемых фигур, изменения типов линий контура и их параметров можно воспользоваться функциями стандартной графической библиотеки graphics. Вывод текста в графическом режиме можно осуществить с использованием прототипов функций той же библиотеки. Текстовая информация отображается на экране с учетом параметров: цвет, тип шрифта, размер шрифта и направление. Размер символов (по вертикали и горизонтали) определяется как произведение стандартного размера (8×8 пикселей) на параметр charsize, то есть если значение charsize будет равно 3, то каждый символ, отображающийся на экране, будет вписан в квадрат 24×24 пикселя. Параметр font, задающий стиль шрифта, подключает к программе файлы с расширением *.chr (нестандартные «шрифты»), поэтому необходимо сделать эти файлы доступными (проще всего скопировать их в текущую директорию). Для вывода текста на экран в графическом режиме можно использовать и функции для текстового режима, однако они имеют ряд недостатков. Например, при использовании функции printf() для вывода текста на каком-либо цветном фоне позади надписи появится ее «фон» (черный прямоугольник, равный длине выводимого текста). Также отсутствует возможность изменения внешнего вида выводимого текста (размера шрифта, стиля и т.д.) [5-8]. Приложение А Основные этапы развития технологий программирования Рисунок А.1 - Архитектура программ с глобальной и локальной областями данных
Рисунок А.2 – Архитектура программы при структурном подходе. Модульное программирование
Рисунок А.3 – Объектный подход. Архитектура программы при объектно-ориентированном программировании
Рисунок А.4 – Компонентный подход. Технология СОМ
Рисунок А.5 – Соотношение абстрактного и конкретного в описании блоков при блочно-иерархическом подходе
Рисунок А.6 – Структура процессов жизненного цикла программного обеспечения Приложение Б Элементы блок-схем
Таблица Б.1 - Основные элементы блок-схем
Приложение В Структурное и «неструктурное» программирование Таблица В.1 – Соответствие различных способов описания алгоритмов
Приложение Г Таблица Г.1 - Специальные и управляющие символы
Таблица Г.2 - Зарезервированные слова в C++
Таблица Г.3 – Типы данных с разными комбинациями модификаторов
Таблица Г.4 – Перечень операций, их приоритет и порядок выполнения
Таблица Г.5 – Основные математические функции
Таблица Г.6 – Символы преобразования в функциях ввода-вывода
Таблица Г.7 – Характерные приемы программирования
Приложение Д Указатели и ссылки
Рисунок Д.1 – Графическая интерпретация указателя
Рисунок Д.2 – Элементы массива и указатели Список литературы
1 Иванова Г.С. Технология программирования.- М.: «Кнорус», 2013. 2 Страуструп Б. Язык программирования С++. – М., 2012. 3 Потопахин В. Искусство алгоритмизации. - М.: «ДМК Пресс», 2011. 4 Сэджвик Р. Алгоритмы на С++. – М.: «Вильямс», 2011. 5 Павловская Т.А. С/С++. Структурное программирование. – СПб., 2010. 6 Немцова Т.И. Программирование на языке высокого уровня. Программирование на языке С++. - М.: «Форум», 2012. 7 Ашарина И.В. Основы программирования на языках С и С++. - М.: Горячая линия-Телеком, 2012. 8 Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. – М.: Финансы и статистика, 2004. 9 Терехов А.Н. Технология программирования. – М.: БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий. - Intuit.ru, 2006. 10 Давыдов В.Г. Технологии программирования С++. – СПб., 2005. 11 Соколов А.П. Системы программирования: теория, методы, алгоритмы: Учебное пособие. - М.: Финансы и статистика, 2004.
Cводный план 2013 г., поз. 256
Наталья Валерьевна Сябина Лариса Николаевна Рудакова
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Конспект лекций для студентов специальности 5B070200 - Автоматизация и управление
Редактор Л.Т. Сластихина Специалист по стандартизации Н.К. Молдабекова
Копировально-множительное бюро некоммерческого акционерного общества «Алматинский университет энергетики и связи» 050013, Алматы, ул. Байтурсынова, 126
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 429; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.52.108 (0.011 с.) |