Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема Графика в C#.doc
Скачиваний:
11
Добавлен:
03.05.2019
Размер:
3.65 Mб
Скачать

Рисование многоугольника (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