Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы 41-67.doc
Скачиваний:
7
Добавлен:
09.06.2015
Размер:
1.11 Mб
Скачать

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

System.DrawingGraphics.

Класс Graphics предоставляет методы для вывода объектов в устройстве отображения. Объект Graphics связан с конкретным контекстом устройства.

Используя объект Graphics, можно нарисовать много разных фигур и линий. Дополнительные сведения о рисовании линий и фигур см. в описании метода Draw графического элемента для линии или фигуры, которую требуется нарисовать. К этим методам относятся DrawLine,DrawArcDrawClosedCurveDrawPolygon и DrawRectangle. Дополнительные сведения о рисовании линий и фигур см. в разделах Рисование линий и фигур с помощью пера и Использование кисти для заливки фигур.

Рисунки и значки можно также рисовать с помощью методов DrawImage иDrawIcon, соответственно. Чтобы выполнить передачу данных о цвете блоками битов с экрана на поверхность рисования объекта Graphics, см.CopyFromScreen. Дополнительные сведения о рисовании рисунков с помощью объекта Graphics см. в разделе Работа с растровыми и векторными изображениями.

Кроме того, можно манипулировать системой координат, используемой объектом Graphics. Дополнительные сведения о системе координат и манипуляциях с ней см. в разделе Системы координат и преобразования.

50) Физическая и логическая системы координат графического приложения

Физическая система координат представляет собой матрицу пикселов фиксированной ширины и высоты. Начало координат находится в левом верхнем углу. Ось X направлена слева направо, а ось Y— сверху вниз. Максимальный размер физического устройства равен 227 х 227 пикселов. Для дисплея физические координаты называют также экранными координатами1. Экранные координаты обычно используются в операциях управления окнами. Например, функция GetWindowRect возвращает ограничивающий прямоугольник окна в экранных координатах. Также экранные координаты содержатся в параметрах таких сообщений, как WM_NCM0USEM0VE. Это сообщение генерируется при перемещении курсора мыши в пределах неклиентской част окна. Следует учитывать, что бывают случаи, когда не все пикселы физической по верхности могут отображаться устройством. Например, для принтеров существу ют механические ограничения, не позволяющие печатать у краев страниц. В та ких ситуациях приложение должно получить информацию об отображаемой част! поверхности при помощи функции GetDeviceCap.

Логическая система координат во многих случаях позволяет создавать приложения, независимые от конкретного типа устройства графического вывода.

Для указания режима отображения в файле windows.h определены символьные константы с префиксом MM_. При создании контекста устройства по умолчанию устанавливается режим отображения MM_TEXT. В этом режиме используется логическая система координат, полностью эквивалентная физической. Каждая единица по оси x или у соответствует одному пикселю экрана.

51) Преобразование систем координат: параллельный перенос, поворот. Поняие однородной системы координат

Параллельный перенос системы координат

Сейчас мы рассматриваем преобразование, заключающееся в повороте координатных осей с сохранением начала координат (рис. 13).

Пусть точка М имеет координаты (х, у) в "старой" системе и координаты (х,' у')в "новой" системе, α - угол поворота осей координат, отсчитываемый в положительном направлении от "старой" оси Ох. В данном случае происходит изменение базиса на базис

Запишем координаты векторов ив базисе

т.е., мы получили

или, в матричной форме

Формулы (43), (44) выражают "старые" координаты через "новые".

Обозначим матрицу

тогда

Как найти выражение "новых" координат через "старые"?

Поскольку матрица А невырожденная, то существует обратная матрица A-1.

Умножим соотношение (45) слева на A-1 и получим

поскольку A-1*A, т.е. единичная матрица, то

где, очевидно,

Однородные координаты ― координаты, обладающие тем свойством, что определяемый ими объект не меняется при умножении всех координат на одно и то же ненулевое число.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.