7.3. Фигуры
В API Windows есть несколько графических примитивов, которые предназначены для рисования фигур с заполнением:
□ Chord — хорда эллипса;
□ Ellipse — эллипс;
□ Pie — сектор эллипса;
□ Polygon — полигон;
□ PolyPolygon — несколько полигонов и (или) полигоны с пустотами;
□ Rectangle — прямоугольник;
□ RoundRect — прямоугольник со скругленными углами.
Таблица 7.2
Стиль заполнения.Кисть
По умолчанию в контексте графического устройства устанавливается стиль заполнения сплошным белым цветом. Для того чтобы рисовать определенную фигуру другим стилем, необходимо создать соответствующую кисть. Кисть и стиль заполнения — синонимы в API Windows.
Кисть — это объект GDI. Он требует памяти. Кроме того, все кисти, созданные во время работы программы, необходимо уничтожить, иначе они могут остаться в памяти после завершения программы. Общая схема использования кистей такая же, как и для перьев:
1. Создание кисти, выбор ее в контекст.
2. Рисование фигур с заполнением.
3. Освобождение контекста, уничтожение кисти.
Сплошная кисть создается функцией CreateSoiidBrush. Рассмотрим пример использования оранжевой кисти.
Штриховая кисть создается функцией CreateHatchBrash. CreateHatchBrush(HS_DIAGCROSS, RGB(0,0,255));
КИСТЬ С заданием растрового шаблона — CreatePatternBrush.
Рисование поверхности 1
Рассмотрим пример программы для рисования поверхности, заданной в виде! функции z =f(х, у), например: 1
Для рисования с удалением невидимых точек поверхности используем метод ] сортировки граней по глубине, а точнее, будем прямо рисовать грани от самых дальних к самым близким. Каждую грань можно рисовать четырехугольником-полигоном (рис. 7.11.).
Рис. 7.11. Поверхность z = f{x, у)
7.4. Шрифт TrueType
Рассмотрим пример использования шрифтов TrueType (рис. 7.12).
Рис. 7.12. Использование шрифта TrueType Текст программы studex2 з. срр:
!
В некоторых версиях Windows, возможно, эта программа не будет корректно работать. Может потребоваться задать другое имя шрифта. Но для того, чтобы буквы показывались с наклоном, этот шрифт обязательно должен быть типа TrueType (подойдет и ОрепТуре для Win2000).