Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Системы координат

Событие Paint для перерисовки клиентской области

Класс Graphics

Класс Graphics – это основной класс, с помощью которого выполняется рисование. Объекты этого класса зависят от контекста устройства, (результат рисования не обязательно отображается на дисплее компьютера, она может выводиться на принтер, графопостроитель или другие устройства), поэтому создание объектов класса Graphics выполняется не обычным способом, с помощью операции new, а с помощью методов CreateGraphics (базового класса Control) у тех форм, на которых будет выполняться рисование. Например, если нужно на форме нарисовать круг вокруг точки, где выполнен щелчок кнопки «мышки», то можно использовать следующий обработчик события:

void Form1_MouseClick(object sender, MouseEventArgs e){

Graphics gfx = CreateGraphics();

gfx.DrawEllipse(Pens.Blue,e.X – 10,e.Y -10,20, 20);

}

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

Событие Paint возникает всякий раз, когда клиентская область формы, в которой происходило рисование, портится. Причины этого могут быть разные – пользователь свернул форму, изменил ее размеры, произошло перекрытие другой формой, был вызван метод формы Invalidate() – во всех этих случаях требуется перерисовать область. Задачей обработчика события Paint является перерисовка клиентской области формы. Для повышения эффективности можно анализировать поврежденную область и выполнять рисование только в ее пределах.

Первый раз событие Paint возникает при открытии формы. В обработчик события в качестве второго параметра передается объект типа PaintEventArgs. Этот объект содержит параметры испорченной области формы ClipRectangle и ссылка на объект класса Graphics, с помощью которого можно выполнять рисование. Например, в обработчике события Paint, занимающегося перерисовкой, этот объект можно получить следующим образом:

 

void Form1_Paint(object sender, PaintEventArgs e){

Graphics gfx = e.Graphics;

//перерисовка, использующая методы объекта gfx

}

В форме по умолчанию задается стандартная система координат, показанная на рис. 8.15. Однако в классе Graphics имеется набор свойств и методов для изменения такой системы координат области рисования. Можно выделить следующие основные свойства:

Ÿ свойство PageUnit для задания единиц измерения, которое может принимать такие основные значения перечисления GraphicsUnit, как Pixel (по умолчанию), Millimeter, Point (1/72 дюйма), Inch (дюйм – 2.54 см);

Ÿ свойство Transform для задания матрицы трансформации координат, которая описывается с помощью класса Matrix; рассмотрение данного класса выходит за пределы данного пособия, но отметим, что с помощью такой матрицы можно создать обычную систему координат с центром в точке (x, y) следующим образом:

 

Graphics gfx = CreateGraphics();

gfx.Transform = new Matrix(1, 0, 0, -1, x, y);

 

К основным методам изменеия системы координат можно отнести:

Ÿ перенос начала системы координат в точку (x, y) – TranslateTransform(x, y);

Ÿ поворот системы координат относительно начальной точки на x градусов по часовой стрелке RotateTransform(х);

Ÿ масштабирование по оси x и оси y – ScaleTransform(x, y);

 

<== предыдущая лекция | следующая лекция ==>
Рисование в форме | Будова ока
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 385; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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