- •1. Цель работы
- •2. Краткая теория
- •2.1. Работа с перьями
- •2.2. Работа с кистью
- •2.2.1. Кисть для сплошной закраски
- •2.2.2. Кисти типа HatchBrush
- •2.2.3. Кисти типа TextureBrush
- •2.2.4. Градиентные кисти
- •2.3. Проверка попадания в область изображения
- •2.4. Проверка попадания в область, отличную от прямоугольной
- •2.5. Определение цветовых значений
- •2.6. Стандартное диалоговое окно выбора цвета
- •3. Пример выполнения работы
- •3.1. Визуальное проектирование диалогового окна
- •3.2. Проектирование программного кода
- •3.2.1. Начальное рисование фигуры
- •3.2.2. Реализация движения фигуры
- •3.2.3. Программная реализация «отскакивания от стенок»
- •3.2.4. Изменение скорости движения круга
- •3.2.5. Создание диалоговой панели выбора цвета заливки
- •3.2.6. Создание свойства для получения цвета
- •3.2.7. Проверка попадания курсора мыши внутрь круга
- •If (прямоугольник.Contains(точка_курсора))
- •3.2.8. Изменение цвета круга
- •4. Варианты заданий для самостоятельной работы
Лабораторная работа №2 Разработка приложения, имитирующего движение графических объектов
1. Цель работы
Изучить теоретические принципы использования графических объектов GDI+ и получить практические навыки разработки программ, имитирующих движение графических объектов.
2. Краткая теория
2.1. Работа с перьями
Все методы класса Graphics, предназначенные для рисования фигур или текста, получают через один из параметров перо класса Pen или кисть класса Brush, с помощью которых и выполняется рисование.
Перья используются для рисования линий и простейших геометрических фигур и создаются как объекты класса Pen. Вот соответствующие конструкторы:
public Pen(Color);
public Pen(Color, float);
public Pen(Brush);
public Pen(Brush, float);
Первый из этих конструкторов создает перо заданного цвета. Цвет задается при помощи объекта класса Color. Второй конструктор позволяет дополнительно задать толщину пера. Третий и четвертый конструктор создают перо на основе кисти, причем в четвертом конструкторе можно указать толщину создаваемого пера.
После того как перо создано, программа может определить его атрибуты при помощи свойств класса Pen. Некоторые из этих свойств перечислены в таблице.
Свойство |
Описание |
Alignment |
Выравнивание пера |
Width |
Ширина линии |
Brush |
Кисть, используемая пером |
Color |
Цвет пера |
DashStyle |
Стиль пунктирных и штрихпунктирных линий |
DashCup |
Вид точек и штрихов пунктирных и штрихпунктирных линий |
DashOffset |
Расстояние от начала линии до начала штриха |
DashPattern |
Массив шаблонов для создания произвольных штрихов и пробелов штриховых и штрихпунктирных линий |
StartCup EndCup |
Стиль концов линий |
LineCap |
Формы концов линий |
LineJoin |
Стиль соединения концов двух различных линий |
MiterLimit |
Предельная толщина в области соединения остроконечных линий |
Устанавливая значение свойства Color и Width, приложение может изменить соответственно цвет и ширину линии, рисуемой пером.
Если надо нарисовать пунктирную или штрихпунктирную линию, приложение должно задать необходимое значение для свойства DashStyle. При этом допускается изменять вид точек и тире пунктирных и штрихпунктирных линий (свойство DashCup), задавать расстояние от начала линии до начала штриха (свойство DashOffset) или даже вовсе задать произвольный вид для штрихов и разделяющих эти штрихи пробелов (свойство DashPattern).
При необходимости изменить внешний вид концов линий используйте свойства StartCup и EndCup, задающие стиль концов линий. Свойство LineCap определяет форму концов линий.
Если нужно указать стык между двумя различными линиями, то стиль этого стыка задается свойством LineJoin, а предельная толщина стыка - стилем MiterLimit.
При помощи перьев можно рисовать не только прямые линии, но и любые геометрические фигуры.
