Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
20
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

Использование областей

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

Область можно построить на основе прямоугольника или контура. .Можно также создавать сложные области путем объединения существующих областей. У класса Region имеются следующие методы для объединения областей: Intersect, Union, Xor, Exclude и Complement.

Пересечение двух областей состоит из всех точек, принадлежащих обеим областям. Объединение — это набор из всех точек, принадлежащих одной или обеим областям. Дополнение области состоит из всех точек, не входящих в область. На приведенном ниже рисунке изображено пересечение и объединение двух областей, изображенных на предыдущем рисунке.

-------------------

Метод Xor, примененный к паре областей, выдает область, содержащую все точки, которые принадлежат только одной из заданных областей, но не им обеим. Метод Exclude, примененный к паре областей, выдает область, содержащую все точки первой области, не являющиеся точками второй области. На приведенном ниже рисунке изображены области, полученные в результате применения методов Xor и Exclude к двум областям, изображение которых приведено в начале раздела.

---------

Чтобы залить область, требуются объекты Graphics, Brush и Region. У объекта Graphics имеется метод FillRegion, а объект Brush предназначен для хранения таких параметров заливки, как ее цвет и шаблон. В приведенном ниже примере демонстрируется заливка области сплошным цветом.

myGraphics.FillRegion(mySolidBrush, myRegion)

Restricting the Drawing Surface in GDI+

Clipping involves restricting drawing to a certain rectangle or region. The following illustration shows the string "Hello" clipped to a heart-shaped region.

Clipping with Regions

Regions can be constructed from paths, and paths can contain the outlines of strings, so you can use outlined text for clipping. The following illustration shows a set of concentric ellipses clipped to the interior of a string of text.

To draw with clipping, create a Graphics object, set its Clip property, and then call the drawing methods of that same Graphics object:

myGraphics.Clip = myRegion;

myGraphics.DrawLine(myPen, 0, 0, 200, 200);

Ограничение поверхности для рисования в GDI+

Обрезка заключается в запрете рисования за пределами определенного прямоугольника или области. На приведенном ниже рисунке изображена строка "Hello", выведенная с использованием обрезки в область в форме сердца.

Задание области обрезки

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

Чтобы нарисовать что-либо с использованием обрезки, нужно создать объект Graphics, задать его свойство Clip, а затем вызывать методы рисования этого объекта Graphics.

---------------

Antialiasing with Lines and Curves

When you use GDI+ to draw a line, you provide the starting point and ending point of the line, but you do not have to provide any information about the individual pixels on the line. GDI+ works in conjunction with the display driver software to determine which pixels will be turned on to show the line on a particular display device.

Aliasing

Consider the straight red line that goes from the point (4, 2) to the point (16, 10). Assume the coordinate system has its origin in the upper-left corner and that the unit of measure is the pixel. Also assume that the x-axis points to the right and the y-axis points down. The following illustration shows an enlarged view of the red line drawn on a multicolored background.

The red pixels used to render the line are opaque. There are no partially transparent pixels in the line. This type of line rendering gives the line a jagged appearance, and the line looks somewhat like a staircase. This technique of representing a line with a staircase is called aliasing; the staircase is an alias for the theoretical line.

Antialiasing

A more sophisticated technique for rendering a line involves using partially transparent pixels along with opaque pixels. Pixels are set to pure red, or to some blend of red and the background color, depending on how close they are to the line. This type of rendering is called antialiasing and results in a line that the human eye perceives as more smooth. The following illustration shows how certain pixels are blended with the background to produce an antialiased line.