Хотите ли вы нарисовать квадратную кривую, которая проходит от до трех заданных точек, или вы хотите нарисовать квадратичную кривую Безье , которая использует три заданных точки?
Если вам нужна кривая Безье, попробуйте это:
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 поможет.