如何使用C#System.Drawing命名空间绘制通过3个点的二次曲线?
答案 0 :(得分:5)
你想绘制一个二次曲线,该曲线是到三个给定点,或者你想绘制使用三个给定点的quadratic Bézier curve?
如果你想要的是Bézier曲线,试试这个:
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);
}
我只是从GraphicsPath.AddBeziers()
{{1}}无耻地解除了。
修改:如果你真正想要的是拟合二次曲线,那么你需要对你的点进行MSDN documentation或curve fitting。也许polynomial interpolation会有所帮助。