- •Тема Графика в c#.
- •Контекст отображения
- •Класс Graphics
- •Событие Paint
- •Тема Методы и свойства класса Graphics. Рисование геометрических фигур Рисование линии (DrawLine)
- •Набор линий (DrawLines)
- •Рисование прямоугольника(DrawRectangle )
- •Набор прямоугольников (DrawRectangles )
- •Рисование многоугольника (DrawPolygon)
- •Рисование эллипса(DrawEllipse )
- •Результат работы метода DrawEllipse Рисование сегмента эллипса (DrawArc)
- •Рисование замкнутого сегмента эллипса(DrawPie)
- •Рисование кривых Безье (DrawBezier и DrawBeziers )
- •Рисование канонических сплайнов (DrawCurve и DrawClosedCurve)
- •Рисование закрашенных фигур.
- •Тема. Инструменты для рисования
- •Инструмент для рисования перо (Pen) и его свойства
- •Инструмент для рисования кисть (Brush)
- •Кисть SolidBrush
Рисование многоугольника (DrawPolygon)
Метод DrawPoligon предназначен для рисования многоугольников. Существуюет две перегруженные версии этого метода (см.слайд).
public void DrawPolygon(Pen, Point[]); public void DrawPolygon(Pen, PointF[]);
Аргументами метода является в перо Pen и массив точек класса Point.
Продемонстрируем работу метода на примере ромба.
Массив с координатами вершин ромба будет иметь вид.
Point [] myPoint =
{
new Point(140, 10),
new Point(200, 100),
new Point(140, 210),
new Point(80, 100),
};
Вызов метода DrawPolygon выглядит следующим образом.
g.DrawPolygon(myPen,myPoint);
Полностью текст обработчика события Form1_Paint имеет вид.
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.Clear(Color.White);
Pen myPen = new Pen(Color.Blue, 2);
Point [] myPoint =
{
new Point(140, 10),
new Point(200, 100),
new Point(140, 210),
new Point(80, 100),
};
g.DrawPolygon(myPen,myPoint);
}
Результат работы программы представлен на рис.
Рис. Результат работы метода DrawPolygon.
Рисование эллипса(DrawEllipse )
Метод DrawEllipse позволяет нарисовать эллипс, который вписан в прямоугольную область. Размер этой области передается методу в качестве параметров. В связи с этим рисование эллипса похоже на рисование прямоугольника, а и соответственно и параметры перегруженных методов DrawEllipse идентичны с параметрами метода DrawRectangle. Возможные варианты перегрузки методов представлены ниже (см. слайд).
public void DrawEllipse(Pen, Rectangle); public void DrawEllipse(Pen, RectangleF); public void DrawEllipse(Pen, int, int, int, int); public void DrawEllipse(Pen, float, float, float, float);
Указанные методы, как и в случае DrawRectangle, отличаются только способом, при помощи которого описывается расположение и размеры прямоугольной области, в которую вписан эллипс.
Нарисуем эллипс при помощи первого перегруженного метода. Код обработчика события Form1_Paint имеет вид.
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.Clear(Color.White);
Pen myPen = new Pen(Color.Blue, 2);
Rectangle myRect = new Rectangle(10, 10, 200, 100);
g.DrawEllipse(myPen, myRect);
}
Результат работы метода представлен на рис.
Результат работы метода DrawEllipse Рисование сегмента эллипса (DrawArc)
Для рисования сегмента эллипса предназначен метод DrawArc. Аналогично эллипсу, сегмент задается при помощи координат прямоугольной области, в которую вписан эллипс, а также двух углов, которые отсчитываются в направлении против часовой стрелки (см слайд) рис.
Рис. Принцип построения сегмента эллипса
Первый угол Angle1 задает расположение одного конца сегмента, а второй Angle2 — расположение другого конца сегмента.
Для рисования сегмента эллипса в C# предусмотрено четыре перегруженных варианта метода DrawArc:
public void DrawArc(Pen, Rectangle, float, float); public void DrawArc(Pen, RectangleF, float, float); public void DrawArc(Pen, int, int, int, int, int, int); public void DrawArc(Pen, float, float, float, float, float, float);
Первый параметр метода DrawArc традиционно определяет перо, с помощью которой будет нарисован сегмент. Последние два параметра задают углы Angle1 и Angle2 в соответствии с рис. Расположение и размеры прямоугольной области передаются методу DrawArc также, как это делается для рассмотренного выше метода DrawEllipse.
Применим указанный метод для рисования сегмента эллипса с углами 90 и 180 соответственно.
Вызов метода будет выглядеть следующим образом.
g.DrawArc(myPen, myRect,90,180);
Код обработчика события Form1_Paint имеет вид (см слайд).
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.Clear(Color.White);
Pen myPen = new Pen(Color.Blue, 2);
Rectangle myRect = new Rectangle(10, 10, 200, 100);
g.DrawArc(myPen, myRect,90,180);
}
Результат работы программы представлен на рис.
Рис. Результат работы метода DrawArc