Программирование >>  Программирование с использованием ajax 

1 ... 339 340 341 [ 342 ] 343 344 345 ... 396



Рис. 33.3. Рисовани£ диагональной линии от точки 1,0 до точки 4,3

Прямоугольник, верхний левый угол которого расположен в точке 1,0, а размеры сторон составляют 5 и 4, будет прорисован, как показано на рис. 33.4.


Рис. 33.4. Рисование прямоугольника

Обратите внимание на интересный нюанс. Указание ширины, равной 5 пикселям, привело к прорисовке 6 пикселей в горизонтальном направлении. Однако если подсчитать количество линий сетки, проходящих через пиксели, ширина прямоугольника составляет только 5 пикселей, причем нарисованная линия выступает на полпикселя наружу и на полпикселя внутрь указанной линии сетки.

Но и это еще не все. При рисовании с использованием функции сглаживания другие пиксели будут окрашены частично, создавая впечатление плавной линии и частично устраняя ступенчатость диагональных линий.



Линия, нарисованная без сглаживания, изображена на рис. 33.5.


Рис. 33.5. Линия, нарисованная без сглаживания Эта же линия, нарисованная со сглаживанием, показана на рис. 33.6.


Рис. 33.6. Линия, нарисованная со сглаживанием

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

Для указания координат при рисовании часто придется использовать три структуры: Point (точка). Size (размер) и Rectangle (прямоугольник).

Point

Интерфейс GDI+ использует Point для представления точки, имеющей целочисленные координаты. Она представляет собой точку на двумерной плоскости - т.е. спецификацию одиночного пикселя. Многие функции GDI+, такие как DrawLine (), принимают Point в качестве аргумента. Объявление и конструирование структуры Point выполняется следующим образом:

Point р = new Point (1, 1) ;

Для получения и установки координат X и Y структуры Point используют общедоступные свойства X и Y.

Size

GDI+ использует структуру Size для представления размера в пикселях. Структура Size содержит как ширину, так и высоту. Объявление и конструирование структуры Size выполняется следующим образом:

Size S = new Size (5, 5) ;

Для получения и установки высоты и ширины структуры Size используют общедоступные свойства Height и Width.



Rectangle

Интерфейс GDI+ использует эту структуру во множестве различных мест для указания координат прямоугольника. Структура Point определяет верхний левый угол прямоугольника, а структура Size - его размеры. Существуют два конструктора структуры Rectangle. Один принимает в качестве аргументов позицию X, позицию Y, ширину и высоту. Второй принимает структуры Point и Size. Ниже приведены два примера объявления и конструирования структуры Rectangle:

Rectangle rl = new Rectangled, 2, 5, 6) ;

Point p = new Point (1, 2);

Size s = new Size (5, 6) ;

Rectangle r2 = new Rectangle (p, s) ;

Для получения и установки всех аспектов расположения и размеров структуры Rectangle предусмотрены соответствующие общедоступные свойства. Кроме того, существуют также другие полезные свойства и методы для решения таких задач, как определение того, пересекается ли прямоугольник с другим прямоугольником, получение пересечения и объединения двух прямоугольников.

GrapbicsPath

В интерфейсе GDI+ доступны два более важных типа данных, которые используются в качестве аргументов различных функций рисования. Класс Graphics Path представляет серию связанных линий и кривых. При конструировании пути к нему можно добавлять линии, кривые Безье, дуги, сектора, многоугольники, прямоугольники и другие элементы. По завершении конструирования сложного пути его можно рисовать посредством одной операции: вызова метода DrawPath (). Путь можно заполнить (выполнить заливку), вызывая метод FillPath ().

Конструирование объекта Graphics Path осуществляется с использованием массива точек и объекта PathTypes. Объект PathTypes - это массив типа byte, в котором каждый элемент соответствует элементу массива точек и представляет дополнительную информацию о способе конструирования пути, проходящего через каждую конкретную точку. Информация о пути через точку может быть получена с помощью перечисления PathPointType. Например, если точка - начало пути, тип пути для этой точки - PathPointType. start. Если точка - соединение между двумя линиями, тип пути для этой точки - PathPointType. Line. Если точка применяется для конструирования кривой Безье из точек, расположенных до и после данной, типом пути является PathPointType.Bezier.

В следующем практическом занятии мы создадим объект Graphics Path и нарисуем его в окне.

Практическое занятие СоЗДЭНИе графического пуТИ

Чтобы создать и нарисовать объект GraphicsPath, выполните следующие действия.

1. Создайте новое Windows-приложение по имени DrawingPaths в каталоге С:\

BegVCSharp\Chapter33.

2. В начальную часть кода добавьте следующую директиву using для System. Drawing.Drawing2D:



1 ... 339 340 341 [ 342 ] 343 344 345 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика