Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 200

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 404 >> Следующая


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

Существуют три структуры, которые мы будем наиболее часто использовать для задания координат при рисовании: Point (точка), size (размер) и Rectangle (прямоугольник).

Point

В GDI— Point используется для представления отдельной точки. Это точка, расположенная на двумерной плоскости, которая определяет единственный пиксель. Многим функциям, использующимся В GDI + , таким как DrawLined, Poinc передается в качестве аргумента. Мы объявляем и определяем точку следующим образом:

Point р = new Poinctl, 1);

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

Size

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

Sise а - new Size(5, 5)i

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

Rectangle

Эта структура используется в GDI+ во многих различных местах для задания координат прямоугольников. Структура Point описывает верхний левый угол прямоугольника, а структура size — его размеры. У Rectangle есть два конструктора. Одному конструктору в качестве аргументов передаются координаты X, Y — ширина
432 _____________Г.шаа 16

и высота. Второй конструктор принимает структуры point и size. Ниже приводятся дпа примера объявления и создания структуры Rectangle:

Rectangle rl ¦ new Rectangle (1, 2, 5, 6) j

Point p - new Point [If 2) I ¦

Size s =¦ new Size (5, 6) j -

Rectangle r2 = new Rectangle [p, s);

Для определения и эадання всех составляющих местоположения и размеров прямоугольника используются общие свойства. Кроме того, существуют и другие свойства и методы, которые позволяют осуществлять разные полезные яещи, например, проверять является лн прямоугольник пустым, определять, пересекается данный прямоугольник с каким-либо другим прямоугольником, а также получать пересечение и объединение двух прямоугольников. Подробнее эти вопросы освещены в разделе, посвященном структуре Rectangle в .NET Framework Reference (руководство по .NET Framework).

Структуры GraphicsPath

Есть два других, более важных типа данных, которые могут использоваться в качестве аргументов, передаваемых различным функциям графического вывода в GDI + . Класс GraphicsPath (графический путь) представляет собой последовательность соединенных между собой прямых и кривых. Для создания графического пути могут использоваться прямые, кривые Безье, дуги, секторы, многоугольники, прямоугольники и многое другое. После определения сложного пути можно вывести его на экран посредством одной операции — обратившись к методу DrawPathd. Для наполнения пути можно использовать метод FiliPathO.

Для создания структуры GraphicsPath используется массив точек и массив pathTypea — массив байтов, в котором каждый элемент соответствует элементу из массива точек и содержит информацию о том, как следует строить графический путь через данную точку. Например, если точка является начальной точкой пути, то тип пути для этой точки будет иметь значение PathPointType.start. Если эта точка является точкой соединения двух линии, то тип пути для этой точки будет иметь значение PathPointType.Line. Если точка используется для создания кривой Безье между двумя точками, то тип пути для этой точки будет иметь значение

PathPointType. Bezier.

Ниже приводится пример программы, которая создает графический путь, состоящий из четырех прямых участков:

GraphicsPath path;

path = new GraphicsPath (new Point [J [

new Point(10, 10), new Point(150, 10), new Point(200, 130) , new Point (10, 150) , new Point(200, 160)

), new byte() (

(byte)PathPointType.Start, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line,

}

>>

e.Graphics.DrawPath(Pens.Black, path);
Введение в GDI+

433

Линия, которая будет нарисована с помощью данного пути, показана на рисунке справа.

Код, понадобившийся для создания такого пути, оказывается достаточно сложным, Конструктор GtaphicsPath принимает два аргумента. Первый из них — это массив структур Point, создаваемый непосредственно здесь же. Для этого используется принятый в C# синтаксис, позволяющий объявлять и инициализировать массивы.

Мы последовательно вызываем конструкторы для каждой точки:

new Point I ] {

цен Point(10, 10), new Point(ISO, 10), new FointUOO, ISO) , new Point(10, 150), пен Point(200, 160)

)

В качестве второго аргумента используется массив бантов, который создается во вторую очередь:

пек byte [ ] (

(byte)PathPointType.Start, tbyte) PathPointType. Line,

(byte) PathPointTyp*i,Line,

(byte)PathPointType. 14 ne,

Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.