-6

こんにちは、私は C# で連続正弦波を生成しようとしています。1 サイクルしか生成できませんが、波形を連続的に生成したいと考えています。

これが私のコードです..

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }


    protected override void OnPaint(PaintEventArgs e)
    {
        float x0 = 100f;
        float y0 = 100f;
        PointF[] points = new PointF[200];

        for (int j = 0; j < 200; j++)
        {
            points[j] = new PointF();
            points[j].X = x0 + j;
            points[j].Y = y0 - (float)(Math.Sin((2 * Math.PI * j) / 200) * (200 / (2 * Math.PI)));
        }

        using (Pen p = new Pen(Color.Blue))
        {
            p.EndCap = LineCap.ArrowAnchor;

            //Draw X-coordinate
            e.Graphics.DrawLine(p, x0, y0, x0 + 250, y0);

           //Draw Y-coordinate
           e.Graphics.DrawLine(p, x0, y0 + 80, x0, y0 - 80);
        }

        e.Graphics.DrawString("0", SystemFonts.DefaultFont, Brushes.Blue, x0, y0 );
        e.Graphics.DrawString("p", SystemFonts.DefaultFont, Brushes.Blue, x0 + 100, y0);
        e.Graphics.DrawString("2p", SystemFonts.DefaultFont, Brushes.Blue, x0 + 200, y0);

        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
        e.Graphics.DrawLines(Pens.Blue, points);
        base.OnPaint(e);
    }
}
4

1 に答える 1

2

ウェーブで生成するコードを while do に入れるだけです。X 軸をインクリメントして、右または左に移動します。

于 2012-08-17T11:10:15.653 に答える