日期:2014-05-18  浏览次数:21036 次

请教DrawCurve曲线上点坐标的方法?
或者别的方法,重要的是,平滑和获取曲线上的没有赋值的点坐标。

------解决方案--------------------
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TranslateTransform(0, pictureBox1.Height / 2);
Pen pen = new Pen(Color.White, 2);

point[0] = new Point(0, 10);
point[1] = new Point(50, 20);
point[2] = new Point(100, -40);
point[3] = new Point(150, 10);
point[4] = new Point(200, -50);

e.Graphics.DrawCurve(pen, point);



}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
for ( int i = 0; i < point.Length; i++)
{
if (point[i].X == e.X && point[i].Y == e.Y)
{
label1.Text = e.X.ToString();
label2.Text = e.Y.ToString();
}
}
}

------解决方案--------------------
你怎么画的曲线呢,肯定有点的坐标数组,里面查去
------解决方案--------------------
已知曲线图形,计算控制点?
------解决方案--------------------
试试DrawBezier
------解决方案--------------------
System.Drawing.Drawing2D.GraphicsPath.AddCurve方法和IsOutlineVisible方法。前者添加曲线至路径,后者用于测试点是否在曲线上
------解决方案--------------------
寫這麼多,不如用控件省事

LightningChart Ultimate 4.1