在同一个image控件里画四条不同颜色的曲线,大家可有好的方法?请赐教,谢谢。

解决方案 »

  1.   

    Image -> Canvas -> MoveTo();
    Image -> Canvas -> LineTo();
    加上循环命令即可。看你要画什么样的曲线了
      

  2.   

    不同颜色可用
    Image -> Canvas -> Pen -> Color = clRed;
    下面给出一个例子画曲线的:void __fastcall TForm1::FormPaint(TObject *Sender)
    {
    double A, x1, y1, x2, y2;
    int D = 80;
    double E;
    Width = 640;
    Height = 480;
    Image1 -> Canvas -> Pen -> Color = clRed; //画笔颜色设置
    Image1 -> Canvas -> Brush -> Style = bsClear; //画刷属性设置
    for(int i = 0; i < 270; i++)
    {
    A = i * pi / 360;
    E = D *(1 + sin(4 * A));
    x1 = 240 + E * cos(A);
    x2 = 240 + E * cos(A + M_PI / 5);
    y1 = 180 + E * sin(A);
    y2 = 180 + E * sin(A + M_PI / 5);
    Image1 -> Canvas -> MoveTo(x1, y1);
    Image1 -> Canvas -> LineTo(x2, y2);
    }
    }
    不过代码是cbuilder格式的,Delphi很容易改过来,你可以参考下!
      

  3.   

    不同颜色可用
    Image -> Canvas -> Pen -> Color = clRed;
    下面给出一个例子画曲线的:void __fastcall TForm1::FormPaint(TObject *Sender)
    {
    double A, x1, y1, x2, y2;
    int D = 80;
    double E;
    Width = 640;
    Height = 480;
    Image1 -> Canvas -> Pen -> Color = clRed; //画笔颜色设置
    Image1 -> Canvas -> Brush -> Style = bsClear; //画刷属性设置
    for(int i = 0; i < 270; i++)
    {
    A = i * pi / 360;
    E = D *(1 + sin(4 * A));
    x1 = 240 + E * cos(A);
    x2 = 240 + E * cos(A + M_PI / 5);
    y1 = 180 + E * sin(A);
    y2 = 180 + E * sin(A + M_PI / 5);
    Image1 -> Canvas -> MoveTo(x1, y1);
    Image1 -> Canvas -> LineTo(x2, y2);
    }
    }
    不过代码是cbuilder格式的,Delphi很容易改过来,你可以参考下!
      

  4.   

    我的想法是,四条曲线不要周而复始地使用pen.color之类的。
      

  5.   

    在image控件里构造那种像chart控件里
    series[n]n可以是很多条曲线。
    然后:moveto()
         lineto(series[0]...,series[0]..)
    之类的。