Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
20
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

Построение и рисование кривых

Интерфейс GDI+ поддерживает различные типы кривых: эллипсы, дуги, фундаментальные сплайны и сплайны Безье. Эллипс определяется ограничивающим его прямоугольником; дуга является частью эллипса, которая задается начальным углом и углом развертки. Фундаментальный сплайн определяется массивом точек и параметром натяжения: гладкая кривая проходит через все точки массива, а параметр натяжения влияет на изгиб кривой. Сплайн Безье определяется двумя конечными и двумя контрольными точками: кривая не проходит через контрольные точки, но они влияют на форму кривой, соединяющей две конечные точки.

Фундаментальный сплайн представляет собой гладкую кривую, проходящую через заданные точки. Чтобы нарисовать фундаментальный сплайн, создайте объект Graphics и передайте адрес массива точек методу DrawCurve.

Рисование фундаментальных сплайнов

Фундаментальный сплайн представляет собой гладкую кривую, проходящую через заданные точки. Чтобы нарисовать фундаментальный сплайн, создайте объект Graphics и передайте адрес массива точек методу DrawCurve.

Рисование фундаментального сплайна в форме колокола

  • В следующем примере рисуется фундаментальный сплайн в форме колокола, проходящий через пять заданных точек. Кривая и пять указанных точек представлены на приведенном ниже рисунке.

--------

Drawing a Closed Cardinal Spline

  • Use the DrawClosedCurve method of the Graphics class to draw a closed cardinal spline. In a closed cardinal spline, the curve continues through the last point in the array and connects with the first point in the array. The following example draws a closed cardinal spline that passes through six designated points. The following illustration shows the closed spline along with the six points.

Point[] points = {

new Point(60, 60),

new Point(150, 80),

new Point(200, 40),

new Point(180, 120),

new Point(120, 100),

new Point(80, 160)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));

e.Graphics.DrawClosedCurve(pen, points);

Рисование замкнутого фундаментального сплайна

  • Чтобы нарисовать замкнутый фундаментальный сплайн, можно использовать метод DrawClosedCurve класса Graphics. В замкнутом фундаментальном сплайне линия продолжается за последнюю точку и соединяет ее с первой точкой массива. В следующем примере рисуется замкнутый фундаментальный сплайн, проходящий через шесть заданных точек. На следующем рисунке представлены замкнутый сплайн и шесть заданных точек.

-------------

Changing the Bend of a Cardinal Spline

  • Change the way a cardinal spline bends by passing a tension argument to the DrawCurve method. The following example draws three cardinal splines that pass through the same set of points. The following illustration shows the three splines along with their tension values. Note that when the tension is 0, the points are connected by straight lines.

Point[] points = {

new Point(20, 50),

new Point(100, 10),

new Point(200, 100),

new Point(300, 50),

new Point(400, 80)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));

e.Graphics.DrawCurve(pen, points, 0.0f);

e.Graphics.DrawCurve(pen, points, 0.6f);

e.Graphics.DrawCurve(pen, points, 1.0f);

Compiling the Code

The preceding examples are designed for use with Windows Forms, and they require PaintEventArgs e, which is a parameter of the Paint event handler.