Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Рекомендации по выполнению задания



Пункт 1

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

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

Пункт 2

Для управления фигурами разных типов рекомендуется определить перечисление, содержащее идентификаторы этих фигур. Выбор пункта меню, соответствующего определённой фигуре, и состояние флага заливки должны фиксироваться в полях класса основной формы. Затем, при обработке щелчка левой кнопки мыши следует учитывать значение этих параметров и создавать одну из фигур, используя для выбора конструкцию switch–case.

Пункт 3

Для формы, содержащей рисунок, установить в true свойство DoubleBuffered. Для буферизации операций рисования добавить в класс формы, содержащей рисунок, поле типа BufferedGraphics. Это поле не должно инициализироваться в конструкторе класса, так как его инициализация требует наличия объекта Graphics, который должен создаваться лишь для уже существующих и инициализированных окон. Решением проблемы является использование для инициализации этого поля обработчика события Load формы. Это событие генерируется уже после создания формы, но перед её первым отображением. Для освобождения ресурсов, занятых этим объектом, может использоваться обработчик события FormClosed. При создании объекта BufferedGraphics можно заполнить область окна цветом фона. Обработчик события Paint после перехода к буферизованному выводу должен заполнять фон рабочей области рисунка и рисовать фигуры, но не в окне, а в буфере, а затем вызовом метода Render переносить сформированный рисунок в окно.

Примеры использования класса BufferedGraphics можно найти в справочной системе Visual Studio. В разделе «Index» перейдите к справке по double buffering и там по ссылке «Manually Render Buffered Graphics».

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


ЛИТЕРАТУРА

1. К. Ватсон и др. C#.. – СПб.:Питер, 2006.

2. Д.С. Платт. Знакомство с Microsoft.NET / Пер. с англ. –М.: Издательско-торговый дом «Русская редакция», 2001.

3. Ч. Петцольд. Программирование для Microsoft Windows на C#. В 2-х томах / Пер. с англ. –М.: Издательско-торговый дом «Русская редакция», 2002.

4. C#. Программирование на языке высокого уровня / Т.А.Павловская. – СПб.:Питер, 2007.






Дата публикования: 2015-06-12; Прочитано: 230 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...