Создание объекта Graphics пространства имен System.Drawing для рисования
Класс Graphics является основой интерфейса GDI+ (GDI+ специальная библиотека). Этот класс непосредственно выполняет рисование прямых и кривых линий, геометрических фигур, вывод рисунков и текста. Перед тем как рисовать линии и фигуры, отображать текст, выводить изображения и управлять ими, необходимо создать объект класса Graphics. Объект Graphics представляет поверхность рисования и является объектом, который используется для создания графических изображений. Откройте окно конструктора Windows Forms с формой Windows. Выделите форму. В окне Свойства нажмите значок событие .
Выберите из списка событие Paint и дважды нажмите мышью строку списка
Visual C# вставил метод с именем Form1_Paint, который выполняется при перерисовке элемента управления – формы. Далее необходимо получить ссылку на объект Graphics из объекта PaintEventArgs в событии Paint: 1. Объявите объект Graphics. 2. Присвойте переменной ссылку на объект Graphics, передаваемый как часть PaintEventArgs. PaintEventArgs – класс, предоставляет данные для события Paint 3. Вставьте код для рисования формы или элемента управления. Пример 8.5. Рисование линии на форму. using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1: Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawLine(new Pen (Color.Blue, 2.0f), 100, 100, 200, 200);
}
} } Замечания. 1. При создании экземпляра g класса Graphics ему передается ссылка на форму, куда нужно выводить рисунок (график). Информация о форме содержится в свойстве Graphics экземпляра e класса PaintEventArg. 2. Метод DrawLine предназначен для вывода линии, Pen – класс, предоставляющий перо для вычерчивания линии. Первый аргумент задает цвет линии, второй – ее толщину, выраженную числом типа float. Остальные параметры задают координаты начала и конца линии. При рисовании графика необходимо иметь в виду, что координата (0, 0) формы находится в верхнем левом углу. Перенести точку (0, 0) начала координат можно используя метод TranslateTransform, указав в качестве аргументов величину сдвига вдоль осей X и Y. Ось OY направлена вниз. Поэтому необходимо отразить график относительно оси OY, поставить перед координатой y знак минус. Пример 8.6. Построить по точкам график функции y = x2 при x = -10, -9, -8, …, 10. using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1: Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; int xc = this.Width / 2; // this в данном случае – форма int yc = this.Height / 2; g.TranslateTransform(xc, yc); g.DrawEllipse(new Pen(Color.Red, 8.0f), 0, 0, 1, 1); int x, y; //вычерчивание осей координат g.DrawLine(new Pen(Color.Brown, 1.0f), -200, 0, 200, 0); g.DrawLine(new Pen(Color.Brown, 1.0f), 0, -200, 0, 200); //Вычерчивание осей координат for (x = -10; x < = 10; x += 1) { y = x*x; g.DrawEllipse(new Pen(Color.Blue, 2.0f), x*5, -y, 1, 1); } }
} }
4. Замечания. 1. Здесь введен масштаб по оси х, растягивающий ось в 5 раз. 2. Метод DrawEllipse рисует окружность, вписанную в квадрат со сторонами 1, 1 (последние два аргумента метода DrawEllipse, определяющие толщину точки) для каждой точки графика. 3. Точка начала координат (xc, yc) переносится в середину формы, Для этого вначале xc, yc вычисляются делением пополам ширины Width и высоты Height формы. Вопросы для самопроверки 1. Что такое экранные формы и преимущества их использования. 2. Элементы управления TextBox, Button, RichTextBox. В каких случаях целесообразно их использование. 3. Класс Graphics. Рисование прямых линий. 4. Рисование графиков. Масштабирование при рисовании графиков.
|