Draw Quadratic Curve - PullRequest
       10

Draw Quadratic Curve

0 голосов
/ 19 сентября 2009

Как нарисовать квадратичную кривую через 3 точки, используя пространство имен C # System.Drawing?

1 Ответ

5 голосов
/ 19 сентября 2009

Хотите ли вы нарисовать квадратную кривую, которая проходит от до трех заданных точек, или вы хотите нарисовать квадратичную кривую Безье , которая использует три заданных точки?

Если вам нужна кривая Безье, попробуйте это:

private void AddBeziersExample(PaintEventArgs e)
{

    // Adds a Bezier curve.
    Point[] myArray =
             {
                 new Point(100, 50),
                 new Point(120, 150),
                 new Point(140, 100)
             };

    // Create the path and add the curves.
    GraphicsPath myPath = new GraphicsPath();
    myPath.AddBeziers(myArray);

    // Draw the path to the screen.
    Pen myPen = new Pen(Color.Black, 2);
    e.Graphics.DrawPath(myPen, myPath);
}

Который я просто бесстыдно извлек из документации MSDN для GraphicsPath.AddBeziers().

Редактировать : Если вам действительно нужно подогнать квадратичную кривую, то вам нужно выполнить аппроксимацию кривой или полиномиальную интерполяцию на ваших точках. Возможно этот ответ от Ask Dr. Math поможет.

...