русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Градиент на основе объекта GraphicsPath


Дата добавления: 2013-12-23; просмотров: 689; Нарушение авторских прав


Линейные градиенты

Градиенты

Градиентом называется плавный переход цвета из одного оттенка в другой. В Visual Studio .Net чаще всего используются линейные градиенты и градиенты на основе объекта Path.

 

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

BackwardDiagonal – градиент заполняет прямоугольник по диагонали, от правого верхнего угла к левому нижнему;

ForwardDiagonal – градиент заполняет прямоугольник по диагонали от левого верхнего угла к правому нижнему;

Horizontal – градиент заполняет прямоугольник слева направо;

Vertical – градиент заполняет прямоугольник сверху вниз.

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

Пример. Создать градиентную кисть размером 10 х 10 пикселей с горизонтальной раскраской, переходящей от цвета морской волны к шоколадному цвету и закрасить ею прямоугольник размером 200 х 100 пикселей с координатами левого верхнего угла (10,10):

Visual Basic .Net:

Dim lb As LinearGradientBrush

Dim r1 As New Rectangle(10, 10, 10, 10)

lb = New LinearGradientBrush(r1, Color.Aqua, Color.Chocolate, LinearGradientMode.Horizontal)

Dim g As Graphics

g = Me.CreateGraphics

g.FillRectangle(lb, 10, 10, 200, 100)

Visual C#:

LinearGradientBrush lb;

Rectangle r1 = new Rectangle(10, 10, 10, 10);

lb = new LinearGradientBrush(r1, Color.Aqua, Color.Chocolate, LinearGradientMode.Horizontal);

Graphics g;

g = this.CreateGraphics();



g.FillRectangle(lb, 10, 10, 200, 200);

 

Координаты начала прямоугольника для создания градиента значения не имеют, но без них нельзя создать объект Rectangle. Имеют значение только его размеры, т.к. на их основе рассчитывается градиент. Если реальная фигура будет меньше этого прямоугольника, то она будет заполнена частью градиента. Если же фигура будет больше, то градиент повторится столько раз, сколько нужно для её заполнения.

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

 

Данный градиент создается на основе объекта GraphicsPath. Цвета данного градиента начинаются в центре и расходятся по сторонам. Для использования градиента нужно создать кисть соответствующего типа с помощью объекта PathGradientBrush. Данная кисть создаётся на основе объекта GraphicsPath, в который, в принципе, можно помещать любые геометрические фигуры, но на практике рекомендуется подходить к этому разумно. Объект GraphicsPath для создания кисти должен ограничиваться замкнутой ломанной линией.

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

Цвета градиента задаются центральным цветом (определяется свойством CenterColor) и массивом цветов, расходящимся по углам фигуры (определяется свойством SurroundColors). Число элементов в массиве соответствует числу углов объекта GraphicsPath.

Пример.Создать градиентную кисть на основе квадрата размером 100 х 100 пикселей, с координатами левого верхнего угла (10,10). Прямоугольник помещается в объект GraphicsPath с именем p1. Градиент состоит из центрального бежевого цвета и четырёх плавно расходящихся к углам цветов (морской волны, кораллового, красного и лимонно-жёлтого). С помощью этого градиента закрасить круг, вписанный в квадрат:

Visual Basic .Net:

Dim p1 As New GraphicsPath

Dim r1 As Rectangle

r1 = New Rectangle(10, 10, 100, 100)

p1.AddRectangle(r1)

Dim pg AsNew PathGradientBrush(p1)

pg.CenterColor = Color.Beige

Dim scolors() As Color = {Color.Aqua, Color.Coral, Color.Red, Color.LemonChiffon}

pg.SurroundColors = scolors

Dim g As Graphics

g = Me.CreateGraphics

g.FillEllipse(pg, r1)

Visual C#:

GraphicsPath p1=new GraphicsPath();

Rectangle r1;

r1 = new Rectangle(10, 10, 100, 100);

p1.AddRectangle(r1);

PathGradientBrush pg = new PathGradientBrush(p1);

pg.CenterColor = Color.Beige;

Color[] scolors = { Color.Aqua, Color.Coral, Color.Red, Color.LemonChiffon };

pg.SurroundColors = scolors;

Graphics g;

g = this.CreateGraphics();



g.FillEllipse(pg, r1);

 

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

 



<== предыдущая лекция | следующая лекция ==>
Аффинные преобразования графических изображений | Понятие о ядре ОС Linux


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.