Класс Region

Тип Region представляет внутреннюю часть геометрической фигуры. Исходя из этого определения, имеет смысл, что конструкторы класса Region требуют передачи им некоторого существующего геометрического шаблона. Например, предположим, что создан прямоугольник размером 100х100 пикселей. Если вы хотите получить доступ к внутренней области этого прямоугольника, то можете написать нечто вроде такого:

// Получить внутреннюю часть прямоугольника.

Rectangle r = new Rectangle(0, 0, 100, 100);

Region rgn = new Region(r);

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

  • Complement(). Обновляет Region частью специфицированного графического объекта, который не пересекается с данным Region.
  • Exclude(). Обновляет этот Region во внутренней части, которая не пересекается с указанным графическим объектом.
  • GetBounds(). Возвращает Rectangle(F), представляющий прямоугольную область, охватывающую данный Region.
  • Intersect(). Обновляет этот Region пересечением его самого с указанным объектом графики.
  • Transform(). Трансформирует Region указанным объектом Matrix.
  • Union(). Обновляет этот Region объединением его самого с указанным объектом графики.
  • Translate(). Смещает координаты указанного Region на заданную величину.

Перечисленый состав функций делает понятной основную идею, положенную в основу этих координатных примитивов. Но, если нужны дополнительные детали, следует обратиться к документации по.NET Framework 2.0 SDK.

Класс Graphics

Класс System.Drawing.Graphics — это ворота в функциональность визуализации GDI +. Этот класс не только представляет поверхность рисования (такую, как поверхность формы, поверхность элемента управления или область в памяти), но также определяет десятки членов, которые позволяют визуализировать текст, изображения (пиктограммы, битовые карты и т.п.), и многочисленные геометрические шаблоны. В табл.3 приведен неполный список членов этого класса.

Таблица 3. Члены класса Graphics

Метод Назначение
FromHdc() FromHwnd() FromImage() Эти статические методы предоставляют возможность получения корректного объекта Graphics от заданного изображения (пиктограммы, битовой карты и т.п.) или виджета GUI.
Clear() Этот метод заполняет объект Graphics указанным цветом, стирая в процессе текущую поверхность рисования.
DrawArc() DrawBeziers() DrawCurve() DrawEllipse() DrawIcon() DrawLine() DrawLines() DrawPie() DrawPath() DrawRectangle() DrawRectangles() DrawString() Эти методы используются для визуализации заданного образа или геометрического шаблона. Все методы Draw XXX () требуют использования объектов GDI+ Pen.
FillEllipse() FillPie() FillPolygon() FillRectangle() FillPath() Эти методы используются для заполнения внутренности заданной геометрической фигуры. Все методы Fill XXX () требуют применения объектов GDI+ Brush.

Кроме представленного множества методов для визуализации, класс Graphics определяет дополнительные члены, позволяющие конфигурировать “состояние” объекта Graphics. Присваивая значения свойствам, перечисленным в табл. 4, можно изменять текущие операции визуализации.

Замечание. Что касается ASP.NET, то System.Drawing предоставляет тип BufferedGraphics, который позволяет визуализировать графику с использованием системы двойной буферизации

для минимизации или исключения мерцания, которое может возникнуть во время операций визуализации. Подробности можно найти в документации по. NET Framework 2.0 SDK.

Таблица 3.4. Свойства состояния класса Graphics

Свойства Назначение
Clip ClipBounds VisibleClipBounds IsClipEmpty IsVisibleClipEmpty Эти свойства позволяют устанавливать опции отсечения, используемые с текущим объектом Graphics.
Transform Это свойство позволяет трансформировать “мировые координаты” (подробнее об этом речь пойдет ниже).
PageUnit PageScale DpiX DpiY Эти свойства позволяют конфигурировать точку начала координат операций визуализации, а также единицу измерения.
SmoothingMode PixelOffsetMode TextRenderingHint Эти свойства позволяют конфигурировать гладкость геометрических объектов и текста.
CompositingMode CompositingQuality Свойство CompositingMode определяет, будет ли рисование перекрывать фон или смешиваться с ним.
InterpolationMode Это свойство специфицирует интерполяцию данных между конечными точками.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: