Я столкнулся с проблемой переполнения в области формы. В то время как коды рисовали на 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);
}
}
}