Синусоидальная форма приложения Windows C # для DSP - PullRequest
0 голосов
/ 30 октября 2018

Я столкнулся с проблемой переполнения в области формы. В то время как коды рисовали на y (x) = sin (x) на поверхности формы, проблем нет. Это подходит для области формы. Но в то время как коды рисовали y (x) = 100 * sin (x), график переполняется с поверхности формы. Как я могу решить эту проблему или что я должен сделать, чтобы быть более подходящим в соответствии с моей формой области?

namespace DSPsinwave
{
    public partial class Form1 : Form
    {
        public Form1()
        {  InitializeComponent();}
        private void Form1_Load(object sender, EventArgs e)  { }

        private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            Pen pen = new Pen(Brushes.Black,5.0F);
            float x1 = 0;
            float y1 = 0;
            float y2 = 0;
            float yEx = 250; //Spacing from the top
            float eF =30;   //Size multiplier

            for (float x = 0; x < 20; x+=0.1F) // 0.1f is More precise
            {
                y2 =  (float)Math.Sin(x);
                g.DrawLine(pen, x1 * eF, y1 * eF + yEx, x * eF, y2 * eF + yEx);
                x1 = x;
                y1 = y2;
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            Pen pen = new Pen(Brushes.Black, 5.0F);
            float x1 = 0;
            float y1 = 0;
            float y2 = 0;
            float yEx = 250; 
            float eF = 30;   
            for (float x = 0; x < 20; x += 0.1F) // 0.1f is More precise
            {
                y2 = 100 * (float)Math.Sin(x);
                g.DrawLine(pen, x1 * eF, y1 * eF + yEx, x * eF, y2 * eF + yEx);
                x1 = x;
                y1 = y2;
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
             Form1 NewForm = new Form1();           
             NewForm.Show();
             this.Dispose(false);
        }
    }
}
...