函数比例图
Scale graph of function
我正在尝试制作一个 Windows 表单应用程序来显示函数图。
我怎样才能拉伸图表,使其更偏向两侧?
private void Graphs_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(new Pen(Color.Black), 0, ClientSize.Height / 2, ClientSize.Width, ClientSize.Height / 2);
e.Graphics.DrawLine(new Pen(Color.Black), ClientSize.Width / 2, 0, ClientSize.Width / 2, ClientSize.Height);
for (double x = -100; x < 100; x += 0.1)
{
double y = x * x * -1;
//y = x * -1;
//y = Math.Sqrt(x) * -1;
//y = 1 / x;
try
{
e.Graphics.FillEllipse(new SolidBrush(Color.Red), (ClientSize.Width / 2) - 5 + Convert.ToInt32(x), (ClientSize.Height / 2) - 5 + Convert.ToInt32(y), 10, 10);
}
catch (Exception)
{
}
}
}
为 x 和 y 添加单独的比例因子;目前你有 y = x²| -100
没有 1:1 纵横比可以在方框中显示该曲线,因此您可以显示较少的曲线或以不同方式缩放轴。
我会修复视口,比如 -100<=x<=100 和 0<=y<=10000,然后根据 ClientSize 和视口范围计算 xScale 和 yScale。
我正在尝试制作一个 Windows 表单应用程序来显示函数图。
我怎样才能拉伸图表,使其更偏向两侧?
private void Graphs_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(new Pen(Color.Black), 0, ClientSize.Height / 2, ClientSize.Width, ClientSize.Height / 2);
e.Graphics.DrawLine(new Pen(Color.Black), ClientSize.Width / 2, 0, ClientSize.Width / 2, ClientSize.Height);
for (double x = -100; x < 100; x += 0.1)
{
double y = x * x * -1;
//y = x * -1;
//y = Math.Sqrt(x) * -1;
//y = 1 / x;
try
{
e.Graphics.FillEllipse(new SolidBrush(Color.Red), (ClientSize.Width / 2) - 5 + Convert.ToInt32(x), (ClientSize.Height / 2) - 5 + Convert.ToInt32(y), 10, 10);
}
catch (Exception)
{
}
}
}
为 x 和 y 添加单独的比例因子;目前你有 y = x²| -100 没有 1:1 纵横比可以在方框中显示该曲线,因此您可以显示较少的曲线或以不同方式缩放轴。 我会修复视口,比如 -100<=x<=100 和 0<=y<=10000,然后根据 ClientSize 和视口范围计算 xScale 和 yScale。