- •2. Решение задач кластеризации с помощью сетей Кохонена.
- •3. Язык uml
- •4. Моделирование бизнес-процессов
- •5.Обратные связи
- •6. Основные организационные структуры
- •7. Интерфейс графических устройств cdi. Кисть, карандаш, примитивы.
- •8. Понятие ресурса. Ресурс меню, курсор, пиктограмма.
- •9. Модальные и не модальные панели диалога.
- •10 Формы записи алгоритмов в визуальной среде программирования.
- •11. Этапы проектирования программной системы в визуальной среде программирования.
- •12. Визуальное объектно-ориентированное программирование. Инкапсуляция, наследование, полиморфизм.
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •13. Схема работы web-приложения и web-браузера по протоколу http: бщий вид запроса и ответа http, метод, представление, заголовки запроса, ответа и представления
- •14. Методы http get и post, понятие безопасного и идемпотентного метода, заголовки запроса http: Host, Accept, User-Agent и Referer
- •15. Файловая система procfs
- •16. Средства командной строки по управлению учетными записями пользователей в Linux
- •17. Команда man Источники справочной информации
- •Страницы интерактивного руководства man
- •18. Односторонние функции. Псевдослучайные генераторы.
- •19. Умножение на основе классов вычетов
- •20. Избыточное кодирование
- •Балансировка вычислительной нагрузки Причины возникновения несбалансированной нагрузки
- •Статическая и динамическая балансировки
- •Постановка задачи динамической балансировки
- •Методология практического решения задачи балансировки
- •Оценка загрузки
- •Инициализация балансировки загрузки
- •Принятие решений в процессе балансировки
- •Перемещение объектов
- •Архитектура подсистемы балансировки
- •23. Распределенное хранение информации. Распределенные базы данных. Правила Дейта для распределенных бд. Фрагментация. Репликация. Протокол двухфазной фиксации транзакций.
- •Фрагментация
- •Репликация
- •Схемы владения данными в распределенной бд
- •24. Волновые алгоритмы распространения информации. Требования к волновому алгоритму. Алгоритм для кольцевой структуры. Алгоритм для дерева. Алгоритм голосования.
- •Initial
- •Initial
- •25. Алгоритмы выбора сайтов (координаторов). Алгоритм смещения. Выборы с помощью алгоритма для деревьев. Алгоритмы выбора для кольцевых структур (Лелана, Чанга-Робертса).
7. Интерфейс графических устройств cdi. Кисть, карандаш, примитивы.
Графический интерфейс устройства ( graphics device interface (GDI) ) – это составная часть Win32 API, обеспечивающая графический вывод на устройства отображения информации, такие как дисплей или принтер. Windows-приложение не имеет непосредственного доступа к устройствам. Вместо этого оно обращается к функциям GDI, а GDI транслирует эти обращения к программным драйверам физических устройств, обеспечивая аппаратную независимость приложений. Код библиотеки находится в файле gdi32.dll, то есть библиотека является динамически загружаемой.
Взаимодействие приложения с GDI осуществляется при участии т.н. контекста устройства.
Контекст устройства ( device context ) – внутренняя структура данных, которая определяет набор графических объектов и ассоциированных с ними атрибутов, а также графических режимов, влияющих на вывод.
Основные графические объекты:
Карандаш (pen) для рисования линий
Кисть (brush) для заполнения фона или заливки фигур
Растровое изображение (bitmap) для отображения в указанной области окна
Палитра (palette) для определения набора доступных цветов.
Шрифт (font) для вывода текста
Регион (region) для отсечения области вывода.
Если необходимо рисовать на устройстве графического вывода, то сначала необходимо получить дескриптор контекста устройства. Возвращая дескриптор, Windows тем самым предоставляет право на использование устройства.
Рассмотрим на примере рисования в области окна приложения.
Первый способ получения DC: Использование при обработке WM_PAINT:
Case WM_PAINT:
hDC = BeginPaint( hWnd, &ps );
[используем GDI]
EndPaint( hWnd, &ps );
Return 0;
Второй способ:
hDC = GetDc( hwnd );
[используем GDI]
releaseDC( hwnd, hDC );
Чаще всего функции рисования используются при обработке сообщения WM_PAINT. Система всегда посылает такой сигнал приложения при необходимости перерисовки клиентской области окна
Сообщение WM_PAINT можно вызвать вручную, используя функцию UpdateWindow().
Использование
Любая линия в Windows рисуется с использованием графического объекта, называемого пером ( карандаш ). Контекст устройства содержит перо по умолчанию – сплошное перо черного цвета толщиной в 1 пиксель. Многие графические функции начинают рисование с так называемой текущей позиции пера.
Получение дескриптора стандартного объекта:
hPen = GetStockObject( WHITE_PEN );
Присваивание объекта контексту устройства:
SelectObect( hDC, hPen );
Для перьев ( и для других объектов ) рекомендуется после использования удалять объекты:
DeleteObject( hPen );
Создание нестандартного пера:
HPEN CreatePen( int fnPenStyle, int nWidth, COLORREF crColor );
Первый параметр – стиль. Второй – толщина. Третий – цвет.
Расширенные перья:
HPEN ExtCreatePen(
DWORD dwPenStyle, // тип, стиль и атрибуты пера
DWORD dwWidth, // толщина
CONST LOGBRUSH* lplb, // атрибуты кисти
DWORD dwStyleCount, // длина массива lpStyle
CONST DWORD* lpStyle // массив, задающий правила чередования пикселов
);
Существуют и другие типы перьев.
Передвижение текущего указателя пера:
BOOL MoveToEx(
HDC hdc,
Int x,
Int y,
LPPOINT lpPoint // предыдущая позиция пера
);
Кисть – это растр 8*8 пикселов, который при закрашивании области дублируется в горизонтальном и вертикальном направлении. Используется, например, при рисовании заполненного прямоугольника.
Стандартные кисти создаются так же, как и карандаш:
hBrush = (HBRUSH) GetStockObject( GRAY_BRUSH );
Пользовательские кисти:
HBRUSH CreateSolidBrush( COLORREF crColor );
Штриховые кисти:
CreateHatchBrush( int fnStyle, COLORREF clrref );
Растровые кисти:
HBRUSH CreatePatternBrush( HBITMAP hbmp );
Примитивы.
Линия:
LineTo( hdc, x, y ); // рисует линию от текущей позиции пера до указанной точки.
Прямоугольник:
Rectangle( hdc, xLeft, xRight, yTop, xRight, yBottom ); // прямоугольник, закрашенный текущей кистью.
lprc – ссылка на структуру RECT.
hbr – кисть.
Эллипс:
Ellipse( hdc, xLeft, xRight, yTop, xRight, yBottom );
Простейший вывод текста:
TextOut( hdc, nXStart, nYStart, lpString, cbString );
lpString – указатель на символьную строку.
cbString – число символов в строке.