Слайд 1Графика на c#
Канарейкин А. И.
Слайд 2Платформа .NET обеспечивает целый набор пространства имен для поддержки визуализации двумерной
графики. Для рисования используется пространство имен Drawing. Для рисования необходимо выбрать карандаш Pen и для заливки кисть Brush., точнее статические свойства семейства Pens.
Слайд 3Для заливки используем кисть Brush, аналогично будем использовать его статические свойства
brushes.
Например:
Brushes.Blue;//кисть синего цвета.
Непосредственно для рисования используются следующие объекты:
Линия:
DrawLine();.// Для рисования необходимы 5 параметров:
1.цвет линии, используем семейство Pens.
2.Координаты верхнего левого угла
3.Координаты нижнего правого угла
Например:
DrawLine(Pens.Black, 100, 100, 500, 500);
Прямоугольник: (не забываем что сначала заливка а потом обводка)
Слайд 4FillRectangle();Для рисования необходимы 5 параметров:
1.цвет заливки, используем семейство Brushes.
2.Координаты верхнего
левого угла
3.Ширина и высота
Например:
FillRectangle(Brushes.Beige, 100, 100, 500, 500);//залили прямоугольную область
DrawRectangle(Pens.Red, 100, 100, 500, 500);// выполнили обводку
Эллипс:
FillEllipse();Для рисования необходимы 5 параметров:
1.цвет заливки, используем семейство Brushes.
2.Координаты верхнего левого угла
3.Ширина и высота
Например:
FillEllipse(Brushes.Beige, 100, 100, 500, 500);//залили прямоугольную область
DrawEllipse(Pens.Red, 100, 100, 500, 500);// выполнили обводку
Слайд 5Сектор эллипса:
FillPie();Для рисования необходимы 7 параметров:
1.Цвет заливки, используем семейство Brushes.
2.Координаты
верхнего левого угла
3.Ширина и высота
4.Угол начала сектора
5.Угол конца сектора
Например:
FillPie(Brushes.Beige, 100, 100, 500, 500, 0, 90);//залили прямоугольную область
DrawPie(Pens.Red, 100, 100, 500, 500, 0, 90);// выполнили
Обводку Многоугольник:
Многоугольник, строится по массиву тоыек, поэтому сначала нужно создать массив
Point [] tt={new Point(20, 10), new Point(10, 40),new Point(45,100),new Point(50б 80)};
А после рисуем многоугольник
g.DrawPolygon(Pens.Green,tt);
И при необходимости его заливаем
g.FillPolygon(Pens.Green,tt);
Слайд 6Масштабируемое изображение
Все что мы рассмотрели позволяет рисовать графические примитивы на C#.
Но есть одно но, если после создания изображения мы попытаемся изменить размер формы, то мы увидим что размер изображения не меняется. А по мере уменьшения формы изображение срезается, то есть ее часть оказывается, как бы за пределами формы и мы его не видим.
Проблема в том что во время масштабирования формы уменьшается не единица измерения(это не возможно в принципе, так как размер формы измеряется в пикселях ), а уменьшается количество пикселей.
Для того чтобы обойти эту проблему нам придется создать свою систему координат. Начало останется там же в верхнем левом углу. А вот единицу измерения мы изменим, мы привяжем ее непосредственно к размерам формы и, тем самым при изменении размеров формы будет меняться и наша единица измерения.
Первое что стоит понимать, мы рисуем только на клиентской части формы, то есть нельзя рисовать на заголовке, меню и т.п. В константе нам нужно прописать, сколько наших единиц будет по вертикали и по горизонтали.
Слайд 7Допустим необходимо, чтобы форма представляла поле 10х10, тогда запишем
const int x
= 10, y=10;
Далее нам понадобится 2 переменные типа int для хранения координат x и y
Int dx, dy;//переменные глобальные))))
Теперь нам нужно пересчитать наши dx и dy.
dx = (this.ClientSize.Width)/x;
dy = (this.ClientSize.Height)/y;
Делать это придется в 2 случаях:
1.При загрузке формы в событие Load
2.Во время изменения размера формы в событии Resize
Отображение рисунка на форме происходит в событии Paint. Это событие срабатывает автоматически при вызове события Load, а вот при изменении размеров его нужно вызвать вручную при помощи команды Refresh();
Далее в событии Paint рисуем обычными методами, но уже используя новые единици измерения.
Например: нам нужно нарисовать прямую из точки (2,2) в точку (5,5)
Graphics g =e.Graphics;//инициализация графики
g.DrawLine(Pens.Black, 2 * dx, 2 * dy, 5 * dx, 5 * dy);//рисование прямой
2. Графика Visual Basic .NET
Класс System.Drawing для добавления графики в формы.
Методы класса System.Drawing.Graphics
Слайд 8Класс System.Drawing.Graphics
Пространство имен System.Drawing включает многочисленные классы для создания графики. В
этом разделе вы узнаете о классе System.Drawing.Graphics, который предоставляет методы и свойства для рисования геометрических фигур.
Независимо от того, создаете ли вы простую фигуру или сложный чертеж, важно иметь возможность рисовать в ваших программах большую часть стандартных геометрических фигур. Следующая таблица содержит перечень базовых фигур и методов класса System.Drawing.Graphics.
В дополнение к приведенным здесь методам, которые создают пустые или "незаполненные" фигуры, существует несколько методов, которые рисуют фигуры, автоматически заполняемые каким-либо цветом. Эти методы обычно имеют префикс "Fill" (заполнить) и включают FillRectangle, FillEllipse и FillPolygon. Когда вы используете графический метод класса System.Drawing.Graphics, вы должны создать в вашем коде объект Graphics, представляющий этот класс, и либо объект Pen (перо), либо Brush (кисть), указывающий атрибуты фигуры, которую вы хотите нарисовать, такие, как толщина линии и цвет заливки. Объект Pen передается как один из аргументов в методы, которые не заполняют фигуру цветом. Объект Brush передается как аргумент, когда необходимо выполнить цветную заливку. Например, следующий вызов метода DrawLine для рисования линии, которая начинается с пикселя (20, 30) и заканчивается пикселем (100, 80), использует объект Pen и четыре целых значения. Объект Graphics объявляется с использованием имени GraphicsFun, а объект Pen объявляется с использованием имени PenColor.
Слайд 9Dim GraphicsFun As System.Drawing.Graphics
Dim PenColor As New System.Drawing.Pen(System.Drawing.Color.Red)
GraphicsFun = Me.CreateGraphics
GraphicsFun.DrawLine(PenColor, 20,
30, 100, 80)
Синтаксис метода DrawLine важен, но обратите также внимание на предшествующие ему три строчки, которые требуются для использования класса System.Drawing.Graphics. Вы должны создать переменные для представления обоих объектов Graphics и Pen, и переменная Graphics должна быть создана с помощью метода CreateGraphics, принадлежащего форме Windows. Заметьте, что пространство имен System.Drawing.Graphics включается в ваш проект автоматически - вам не требуется включать в ваш код оператор Imports для объявления требуемого класса.