C#中在picturebox中作带有坐标轴的曲线图,就像下图一样的,我现在先在做坐标轴,我编了一段代码 5
privatevoidpictureBox1_Paint(objectsender,PaintEventArgse){Graphicsg=e.Graphics;Penre...
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen redPen = new Pen(Color.Red, 0.5F);//画笔的宽度为0.5毫米
g.TranslateTransform(this.Location.X, this.Height+this.Location.Y);
int div = 19;
float gridWidth =this.Width / 20;
float h =this.Height;
for (int i = 0; i < div; i++)
{
g.DrawLine(redPen, (i + 1) * gridWidth, 0, (i + 1) * gridWidth, h);
}
}
但是运行后不出结果呀,求助呀,急急急 展开
{
Graphics g = e.Graphics;
Pen redPen = new Pen(Color.Red, 0.5F);//画笔的宽度为0.5毫米
g.TranslateTransform(this.Location.X, this.Height+this.Location.Y);
int div = 19;
float gridWidth =this.Width / 20;
float h =this.Height;
for (int i = 0; i < div; i++)
{
g.DrawLine(redPen, (i + 1) * gridWidth, 0, (i + 1) * gridWidth, h);
}
}
但是运行后不出结果呀,求助呀,急急急 展开
展开全部
把g.TranslateTransform(this.Location.X, this.Height + this.Location.Y)删掉。
float gridWidth = ((PictureBox)sender).Width / (div + 1);
float h = ((PictureBox)sender).Height;
float gridWidth = ((PictureBox)sender).Width / (div + 1);
float h = ((PictureBox)sender).Height;
追问
我还想问下,如果我要画这个曲线的话应该怎么画呀,我有两个数组,一个数组放横坐标,一个数组放纵坐标,而且纵坐标的值很大,都是10000以上,如果我直接以10000的数值在坐标轴内话,这个点会超出坐标轴,因为实际的坐标轴没这么大,我应该怎么做,可以把根据这两个数组作出图呢
追答
先查询一下纵轴最大最小值,以纵轴最小值-5% 作为纵轴基准值,以((y最大值+5%)-(y最小值-5%))/ 高度 作为纵轴缩小因子。绘图Y坐标= 高度 - (y-纵轴基准值 ) / 纵轴缩小因子。
同理算X轴。绘图X坐标= (x-横轴基准值 ) / 横轴缩小因子。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询