![]() |
|
Программирование >> Программирование с использованием ajax
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; us ing Sys tem. Drawing. Dr awing2D; 3. В тело кода объекта Forml введите следующий код: protected override void OnPaint (PaintEventArgs e) { GraphicsPath path; path = new GraphicsPath(new Point []{ new Point(10, 10), new Point (150, 10), new Point (200, 150), 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); 4. Запустите приложение. Результирующий путь должен выглядеть, как показано на рис. 33.7. ![]() Рис, 33.7. Результирующий путь Описание полученных результатов Код создания этого пути достаточно сложен. Конструктор объекта GraphicsPath принимает два аргумента. Первый аргумент - массив Point. В данном случае мы используем синтаксис С# для объявления и инициализации массива в одном и том же месте и создания нового объекта Point по мере перемещения: new Point [ ] { new Point (10, 10), new Point (150, 10), new Point (200, 150) , 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 И, наконец, мы вызываем метод DrawPath (): е.Graphics.DrawPath(Pens.Black, path); Области Класс Region (область) - сложная графическая форма, состоящая из прямоугольников и путей. После создания объекта Region эту область можно нарисовать, используя метод FillRegionO. В следующем практическом занятии мы создадим объект Region и нарисуем его в окне. Создание области Следующий код создает область и добавляет в нее объекты Rectangle и GraphicsPath, а затем закрашивает эту область синим цветом. 1. Создайте новое Windows-приложение по имени DrawingRegions в каталоге С:\BegVCSharp\Chapter33. 2. В начальную часть кода добавьте следующую директиву using для System. Drawing.Drawing2D: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System. Drawing. Drawing2D; 3. В тело Forml поместите следующий код: protected override void OnPaint (PaintEventArgs e) { Rectangle rl = new Rectangle (10, 10, 50, 50); Rectangle r2 = new Rectangle (40, 40, 50, 50); Region r = new Region(rl); r.Union(r2); GraphicsPath path = new GraphicsPath(new Point[] { new Point (45, 45) , new Point (145, 55), new Point (200, 150), new Point (75, 150), new Point (45, 45) }, new byte [ ] { (byte)PathPointType.Start, (byte)PathPointType.Bezier, (byte)PathPointType.Bezier, (byte)PathPointType.Bezier, (byte)PathPointType.Line r.Union(path); e.Graphics.FillRegion(Brushes.Blue, r) ; 4. Если теперь запустить этот код, результат должен быть подобен показанному на рис. 33.8. ![]() Рис. 33.8. Pucoeanu£ области Описание полученных результатов Код создания области также достаточно сложен, однако наиболее сложная его часть - создание любых путей, которые будут помещены внутрь области, а эта задача уже была рассмотрена в предыдущем примере. Конструирование областей состоит из конструирования прямоугольников и путей до того, как будет вызван метод Union (). Если бы требовалось использовать пересечение прямоугольника и пути, вместо метода Union () можно было бы применить метод Intersection(). Для общего ознакомления с GDI+ дополнительная информация о путях и областях не требуется, поэтому мы не будем их рассматривать более подробно. Цвета Многие операции рисования в среде GDI+ требуют указания цвета. При рисовании линии или прямоугольника необходимо задать нужный цвет. В интерфейсе GDI+ цвета инкапсулированы в структуре Color. Цвет можно создать, передавая функции структуры Color значения красного, зеленого и синего компонентов, но это почти никогда не требуется. Структура Color содержит около 150 свойств, которые позволяют получать широкое множество заранее определенных цветов. Забудьте о красном, зеленом, синем, желтом и черном цветах - если нужно выполнить рисование цветом LightGoldenrodYellow или LavenderBlush, для этого существует заранее определенный цвет. Объявление переменной типа Color и ее инициализация цветом из структуры Color выполняется следующим образом: Color redColor = Color.Red; Color anotherColor = Color.LightGoldenrodYellow; Мы почти готовы к созданию какого-либо рисунка, но вначале следует привести несколько замечаний. Еще один способ представления цвета - разбиение его на три компонента: оттенок, насыщенность и яркость. Структура Color содержит вспомогательные методы для выполнения этой задачи, а именно - GetHue (), GetSaturation () и GetBrightness ().
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |